有很多网友遇到这样的问题:在DataGrid模板列中的按钮可以触发ItemCommand事件但是怎么触发其他事件?(比如放置DropDownList怎么触发SelectedIndexChange事件?……)
按照http://blog.csdn.net/LoveCherry/archive/2005/03/24/328455.aspx我们进行一下修改:
在模板列中增加一个DropDownList
<asp:TemplateColumn HeaderText="学院">
<ItemTemplate>
<asp:DropDownList ID="dep2" Runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList2_SelectedIndexChanged"></asp:DropDownList>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="dep" Runat="server"></asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
在前台直接加上事件DropDownList2_SelectedIndexChanged
然后在后台添加事件就可以了
protected void DropDownList2_SelectedIndexChanged(object sender, System.EventArgs e)
{
Response.Write(((DropDownList)sender).SelectedItem);
}
注意,事件不能是private的,这里的sender就是这个下拉框,类型转换一下就能使用了