简体   繁体   English

ASP.NET gridview动态添加列的问题

[英]ASP.NET gridview dynamically added columns issue

I've got simple gridview below, where columns are generated dynamically on page load when not post back. 我在下面有一个简单的gridview,其中的列在页面加载时动态生成,而不回发。

<asp:GridView runat="server" ID="gridMain"
 CssClass="table table-striped table-bordered"
 OnRowCommand="gridMain_onRowCommand"
 OnRowDataBound="gridMain_onRowDataBound"
 OnRowEditing="gridMain_onRowEditing"
 OnRowUpdating="gridMain_onRowUpdating"
 OnRowCancelingEdit="gridMain_onRowCancelingEdit"
 AutoGenerateColumns="False"
 DataKeyNames="StudentId">
</asp:GridView>

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            var actionField = new TemplateField
            {
              HeaderText = "Action",
              ItemTemplate = new BtnEditTemplate(),
              EditItemTemplate = new BtnUpdateTemplate()
            };
            gridMain.Columns.Add(nameField);
        }
     }

Here is BtnEditTemplate() 这是BtnEditTemplate()

public class BtnEditTemplate : ITemplate
{
    public void InstantiateIn(Control container)
    {
        var btnEdit = new LinkButton {ID = "btnEdit" CommandName = "Delete"};
        container.Controls.Add(btnEdit);
    }
}

The problem is that gridMain_onRowCommand event is not firing in this case. 问题是在这种情况下gridMain_onRowCommand事件没有触发。 The only one event that works is page load. 唯一有效的事件是页面加载。 Can anyone help me? 谁能帮我?

You have your code in the following method. 您可以通过以下方法获得代码。 Did you create this one? 您创建了这个吗?

protected void gridMain_onRowCommand(object sender, GridViewCommandEventArgs e)
{

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM