protected void GridView1_DataBound(object sender, EventArgs e)
{
    for (int i = 0; i < this.GridView1.Rows.Count; i++)
    {
            if (this.GridView1.Rows[i].Cells[0].Controls.Count != 0)
            {
                Button btn = (Button)this.GridView1.Rows[i].Cells[4].FindControl("Button1");
                btn.Click += new EventHandler(btn_Click);
            }
    }
}//调试了,触发不了
protected void btn_Click(object sender, EventArgs e)
{
     string text = (sender as Button).CommandArgument;
}在GridView中的模版列中添加了个Button,一开始想给个它在程序中绑个委托点击事件,但是却触发不了~!
是我写错了还是??  貌似以前应该可以阿...

解决方案 »

  1.   

    直接在模板中写
     <asp:Button ID="Button1" runat="server"  OnClick="btn_Click"
                      
                       Text="Click"/>
      

  2.   

    动态添加的委托必须每次Page_Load时都执行,
     
      

  3.   

    protected void GridView1_DataBound(object sender, EventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {                
             Button btn = e.Row.FindControl("Button1") as Button;
             btn.Click += new EventHandler(btn_Click);
        }
    }
      

  4.   

    我就是在page绑定数据源的,然后触发DataBound的
      

  5.   

    e.Row.RowType 有这属性?  报语法错误!
      

  6.   

    是每次PageLoad都执行吗?还是仅仅第一次加载时执行?
      

  7.   

     protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    Button btn = e.Row.FindControl("Button1") as Button;
                    btn.Click += new EventHandler(btn_Click);
                } 
            }
      

  8.   

    GridView1_RowCreated事件是每次Page_Load 后都执行的所以有效
    而GridView1_RowDataBound 是不行的.
      

  9.   

    protected void Page_Load(object sender, EventArgs e)
    {
          if (!IsPostBack)
          {
                GridViewBind();
          }
    }你的意思是说虽然第一次加载了控件的委托事件,但是在点击按钮的时候先触发Page_Load,那个的时候我条件控制GriwView页面提交后就不加载了。
    我只加载一次是为了保持跟更新数据后页面的更新,毕竟触发的更新的事件要比Page_Load晚
    应该是这样吧!~~  明白了~ 谢谢。
    哎,前几天还问了个相似的呢,变了个脸又不知道了~~~ 
      

  10.   

    控件事件必须在每次Page_Load里进行注册。