如何在asp.net中动态创建radgrid中的按钮列?
我的页面中有一个radgrid。我想动态地在radgrid中创建按钮列。我创建列并为它们设置命令名。当我单击其中一个项目并转到ItemCommand事件时,命令名称为空("")。为什么命令名为空?
我有一个包含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为空。为什么?
我想当我点击项目时,为我做一个动作。
答案 0 :(得分:0)
前段时间我有同样的问题,然后我在telerik论坛上使用了这个提示:
http://www.telerik.com/forums/commandname-is-empty-if-the-column-if-created-from-code
总结一下,你需要在创建按钮列后添加到你的网格Rebind()。
也许还有其他一些方法可以让它起作用,但我不知道它们:(