动态生成GridView,模板列中Button触发RowCommand问题
生成GridView的函数:
GridView GridView1 = new GridView();
         GridView1.ID = "gv";
         GridView1.AutoGenerateColumns = false;
         GridView1.RowCommand += new GridViewCommandEventHandler(GridView1_RowCommand);
         GridView1.EnableViewState = true;
GridView1.DataSourceID = "SqlDataSource2";
TemplateField audi = new TemplateField();
         audi.ShowHeader = true;
         audi.HeaderTemplate = new GridViewTemplate(DataControlRowType.Header, "");
         audi.ItemTemplate = new GridViewTemplate(DataControlRowType.DataRow, "");
         GridView1.Columns.Add(audi);
         BoundField name = new BoundField();
         name.HeaderText = "单位";
         name.DataField = "name";
         GridView1.Columns.Add(name);
string[] aa = { "id" };
         GridView1.DataKeyNames = aa;
         viewPanel.Controls.Add(GridView1);
         GridView1.DataBind();
         GridView_DataBind(GridView1);
为模板列里的按钮添加属性的函数:
Button bt = (Button)(GridView1.Rows[i].Cells[0].FindControl("state"));
                 bt.Text = "未审核";
                 bt.Enabled = true;
                 bt.CommandName = dr[1].ToString();
                 bt.CommandArgument = GridView1.DataKeys[i].Value.ToString();
没有触发RowCommand,请高手帮忙
顺便说一下,用LinkButton也不行
------解决方案--------------------是在GridView事件触发的.不是你添加的Button事件中.
------解决方案--------------------把你的按钮事件在GridView的RowCreat事件中绑定就可以了。
听起来也许有点绕,多读两遍就明白了。
------解决方案--------------------以前也遇到过类似的问题,不过GridView不是动态加载的,
只有各行的部分格子里面的控件是动态生成的,
为他们绑定事件的时候必须要在RowCreat事件中触发。
建议搂主把完整代码发出来,大家也好帮忙解决。
------解决方案--------------------GridView1.RowCommand += new GridViewCommandEventHandler(GridView1_RowCommand);  
要写在页面添加GridView1的后面
如:
        form1.Controls.Add(gdv);
       gdv.RowCommand += new GridViewCommandEventHandler(gdv_RowCommand);