private void GoodsGrid_ItemCommand(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e){
...
TableCell cell = GoodsGrid.Items[e.Item.ItemIndex].Cells[10];
Update_Cell(cell,e);}
private void Update_Cell(TableCell cell,System.Web.UI.WebControls.DataGridCommandEventArgs e){
....
         butt.Text = "修改";
js="document.location.href='"+path+"';";
butt.Attributes.Add("onclick",js);
cell.Controls.Add(butt);
}为何点击“修改”,不执行呢?

解决方案 »

  1.   

    butt哪里来的?没看到你是怎么创建button的?
      

  2.   

    Button butt= new Button();
             ...
             butt.Text = "修改";
    js="document.location.href='"+path+"';";
    butt.Attributes.Add("onclick",js);
    cell.Controls.Add(butt);
    butt= new Button();
    butt.Text = "删除";
    js = "return window.confirm('确认删除吗?');";
    butt.Attributes.Add("onclick",js);
    cell.Controls.Add(butt);
    butt.Click += new System.EventHandler(this.ButDel_Click);点击“修改”没反应,点击删除弹出“确认删除吗?”,确认后也并不执行
      

  3.   

    你的datagrid不是在itemdatabound里面添加按钮而在这添加有问题,其次你想实现的效果http://www.cnblogs.com/icesnaker/archive/2004/07/31/29017.aspx 去这里看下咯
      

  4.   

    我知道原因所在了 我的按钮控件不是在page_load这里加进去的(我在iemcommand里加的控件),所以点击了按钮新执行Page_load时找不到按钮的,所以就无法响应按钮事件了。
    大家有什么好办法吗?
      

  5.   

    你的想法没有问题,先声明控件,然后注册事件。
    但是你的写法有问题,不懂你的butt.Click += new System.EventHandler(this.ButDel_Click);你的ButDel_Click这个事件呢???Update_Cell这个事件你添加这个控件,然后你没有声明事件,当然不会有反应的
      

  6.   

    大哥 我怎么可能写事件呢
    我只是写在后面,没贴出来而已。
    如果把 cell.Controls.Add(butt);放在Page_load里,事件就会被执行了。
      

  7.   

    把Update_Cell放在Page_Load里,就会响应删除/修改事件。
      

  8.   

    你试试将Button butt= new Button();放在事件外面,如下:
    private Button butt= new Button();
      

  9.   

    如果我将Update_cell同时放在page_load里和itemcommand里倒是可以,执行也没有错误,如果放在page_load里,每行要点击2次,才能得到selecteditem.cell。
    但是这样,第二次选中一行的时候,就出现两次修改/删除按钮了