如何在asp.net中动态创建radgrid中的按钮列
本文关键字:radgrid 按钮 创建 动态 asp net | 更新日期: 2023-09-27 18:25:07
如何在asp.net中动态创建radgrid中的按钮列?
我的页面中有一个雷达网格。我想在radgrid中动态创建按钮列。我创建列并为它们设置命令名。当我单击其中一个项目并转到ItemCommand事件时,命令名称为null(")。为什么命令名称为空?
我有一个包含3列的数据表。
所有列第一个,动态生成。
private void createColumnToGrid(DataTable dtData)
{
radGridTicketByFlagList.DataSource = new string[] { };
radGridTicketByFlagList.Columns.Clear();
for (int i = 0; i < dtData.Columns.Count; i++)
{
GridButtonColumn col = new GridButtonColumn();
col.ButtonType = GridButtonColumnType.LinkButton;
col.CommandName = "Total";
col.UniqueName = "TCFlag" + i;
col.HeaderText = dtData.Columns[i].ToString();
col.DataTextField = dtData.Columns[i].ToString();
radGridTicketByFlagList.Columns.Add(col);
}
}
然后填充radgrid的数据源。
private void FillRptTicketByFlagMonthList()
{
//........
radGridTicketByFlagList.DataSource = new string[] { };
DataTable dtTicketFlag= clsReportManager.GetRptTicketByFlag(); // fill data table
radGridTicketByFlagList.DataSource = dtTicketFlag;
radGridTicketByFlagList.DataBind();
}
生成网格。当我单击网格中的项目(链接按钮)并转到ItemCommand事件时,e.CommandName为空。为什么?
我想当我点击项目时,为我做一个操作。
前段时间我遇到了同样的问题,然后我使用了telerik论坛上的提示:
http://www.telerik.com/forums/commandname-is-empty-if-the-column-if-created-from-code
总之,在创建按钮列之后,您需要将Rebind()添加到您的网格中。
也许还有其他方法可以让它发挥作用,但我不知道:(