DataGrid/DataList里面的DropDownList事件不能在代码里面代理。
你可以在HTML中直接写事件处理函数,让.NET自动代理:
<asp:DropDownList .. onSelectedIndexChanged="ChangeStatusDRP_SelectedIndexChanged">
然后在代码里把ChangeStatusDRP_SelectedIndexChanged定义成public型。

解决方案 »

  1.   

    en
    定义成protected也是可以的
      

  2.   

    那在ChangeStatusDRP_SelectedIndexChanged里如何获得
    DataGrid点击那一行的DataGrid1.DataKeys[e.item.itemindex]的值?
      

  3.   

    你主要是要得到当前控件所在的行,可以这样试试:
    DataGridItem item = (DataGridItem)e.Parent.Parent;
    string str = DataGrid1.DataKeys[item.ItemIndex];
      

  4.   

    e怎么会有Parent呢,sender才对,try
    DataGridItem item = (DataGridItem)((Control)sender).Parent.Parent
      

  5.   

    yxrj() 说的没错,应该是sender,
    谢谢两位!