如何在asp.net中动态创建radgrid中的按钮列?

时间:2014-10-01 08:53:49

标签: c# asp.net telerik radgrid

如何在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为空。为什么?

我想当我点击项目时,为我做一个动作。

1 个答案:

答案 0 :(得分:0)

前段时间我有同样的问题,然后我在telerik论坛上使用了这个提示:

http://www.telerik.com/forums/commandname-is-empty-if-the-column-if-created-from-code

总结一下,你需要在创建按钮列后添加到你的网格Rebind()。

也许还有其他一些方法可以让它起作用,但我不知道它们:(