c# - asp DataGrid 不显示按钮行
问题描述
我正在尝试在数据表中添加按钮行并将其显示在 DataGrid 中,添加的字符串行可见但没有按钮。如何在代码隐藏中的 DataTable 中添加按钮行?
我尝试使用列表视图、各种类型的按钮、asp 中的模板
kunden_view 是来自asp的DataGrid
kunden_entrys = new List<string[]>();
while (reader.Read())
{
string[] row = new string[6];
for (int i = 0; i < row.Length; i++)
{
row[i] = reader.GetValue(i).ToString();
}
kunden_entrys.Add(row);
}
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Ansprechpartner", typeof(string));
dt.Columns.Add("Drucker", typeof(LinkButton));
for (int i = 0; i < kunden_entrys.Count; i++)
{
dr = dt.NewRow();
dr[0] = kunden_entrys[i][0];
dr[1] = kunden_entrys[i][1];
LinkButton temp = new LinkButton();
temp.ID = "Button" + i;
temp.Text = "Drucker";
temp.Click += drucker_button_click;
temp.Width = 20;
dr[3] = temp;
dt.Rows.Add(dr);
}
DataView dv = new DataView(dt);
kunden_view.DataSource = dv;
kunden_view.DataBind();
我希望网站源代码中的表格有一个空的或更好的按钮
解决方案
您尝试将其添加LinkButton
到数据源中,您需要将其直接添加到 GV,这很有可能RowDataBound
是这样的:
kunden_view.OnRowDataBound += kunden_view_RowDataBound;
protected void kunden_view_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton temp = new LinkButton();
temp.ID = "Button" + i;
temp.Text = "Drucker";
temp.Click += drucker_button_click;
temp.Width = 20;
e.Row.Cells[3].Controls.Add(temp);
}
}
推荐阅读
- c - 我怎么能把字母位置变成字母?
- firebase - 当我尝试使用流生成器从 Firebase 检索数据时('List
' 不是类型 'String' 的子类型) - r - 通过分配值使用R中的管道函数,我的方法正确吗?
- netbeans - Java NetBeans 显示消息发送时间
- r - group_by 并按组有条件地变异
- node.js - 你如何添加到MongoDB中的数组
- swift - 如何在 macOS 上使用 Swift 运行命令打开一个新的终端窗口?
- python - networkx.enumulate_all_cliques 忽略组合,不包括
- firebase - 带有 FirebaseAuth 的 GetX(更新到 4.1.1)- Flutter 身份验证不起作用
- c# - 在 foreach 循环中以编程方式擦除 SQL 中的一行?