C# 连接到gridview内链接按钮的事件不工作?

C# 连接到gridview内链接按钮的事件不工作?,c#,asp.net,C#,Asp.net,我在asp.net中有一个网格,在asp.net中我将数据绑定为linkbutton当单击linkbutton时,我需要在代码隐藏中调用一个方法。附加的事件在我的代码中不起作用。我怎样才能解决这个问题 我的代码与此类似 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow)

我在asp.net中有一个网格,在asp.net中我将数据绑定为linkbutton当单击linkbutton时,我需要在代码隐藏中调用一个方法。附加的事件在我的代码中不起作用。我怎样才能解决这个问题

我的代码与此类似

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            LinkButton link = new LinkButton();
            link.Text = e.Row.Cells[0].Text;
            link.CommandArgument = "Hello";
            link.Click += new EventHandler(this.onLinkClick);  
            e.Row.Cells[0].Controls.Add(link);
        }

    }

    protected void onLinkClick(object sender, EventArgs e)
    {
        LinkButton btn = (LinkButton)(sender);
        string value = btn.CommandArgument;
        TextBox1.Text=value;
    }  

每次在页面加载时,都必须调用将源绑定到GridView的函数


处理
RowCommand
GridView的事件

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            LinkButton link = new LinkButton();
            link.Text = e.Row.Cells[0].Text;
            link.CommandArgument = "Hello";
            e.Row.Cells[0].Controls.Add(link);
        }
    }

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
       string value = e.CommandArgument.ToString();
       TextBox1.Text=value;
    }

因为没有添加或不添加链接按钮的逻辑(我想您必须为每个记录添加链接按钮),为什么不在设计时添加链接按钮呢

   <asp:GridView ID="GridView1" runat="server">
        ....
    <ItemTemplate>
            <asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click">LinkButton</asp:LinkButton>            
    </ItemTemplate>
    ......
    </asp:GridView>

....
链接按钮
......

确保页面上的
AutoEventWireup=“true”
需要在GridView的RowCreated事件中为动态按钮连接事件处理程序,否则它不会触发。然后在RowDataBound事件处理程序中使用“FindControl”。就我个人而言,我一点也不喜欢这种模式,但有时这是不可避免的


您应该使用GridView的

'notworking'作为'Not firing'?grid正在正确加载,但是附加到GridView数据的事件没有发生我知道。。。但是当页面发回时。。。事件不再附加到控件。。每次post都必须调用将事件绑定到控件的函数back@niknowj发生了什么事还没有开火?是的,这就是问题所在。但通过这样做,我需要调用PopulateGridView()两次。一旦按下按钮,点击。接下来是页面加载。我怎样才能避免这种情况?@niknowj请告诉我们它是否有效。。如果在OnInit事件中调用它解决了您的问题。。我们想学习..+1以获得使用内置“”的替代解决方案
   <asp:GridView ID="GridView1" runat="server">
        ....
    <ItemTemplate>
            <asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click">LinkButton</asp:LinkButton>            
    </ItemTemplate>
    ......
    </asp:GridView>