在DataGrid的模板中自定义了个DropDownList DDL 想让DDP在被选择时响应SelectedIndexChanged事件
下面是aspx文件
<asp:DataGrid id="DataGrid1" runat="server" ShowHeader="False" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
测试
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="DDL" Runat="server" AutoPostBack="True"></asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="编辑"></asp:EditCommandColumn>
</Columns>
</asp:DataGrid>//------------------------------------------------------------
cs文件
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
DropDownList DDL=(DropDownList)e.Item.FindControl("DDL");
if (DDL!=null)
{
BindDropDownList("select * from tb_DZDoc",DDL,"vc_OilName","d_id"); //从数据库中获取数据
DDL.SelectedIndexChanged+= new System.EventHandler(this.DDP);
}
}private void DDP(object sender, System.EventArgs e)
{
Response.Write("a");
}可是为什么 每次DDL改变了选择项 缺没有执行Response.Write("a");呢??
下面是aspx文件
<asp:DataGrid id="DataGrid1" runat="server" ShowHeader="False" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
测试
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="DDL" Runat="server" AutoPostBack="True"></asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="编辑"></asp:EditCommandColumn>
</Columns>
</asp:DataGrid>//------------------------------------------------------------
cs文件
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
DropDownList DDL=(DropDownList)e.Item.FindControl("DDL");
if (DDL!=null)
{
BindDropDownList("select * from tb_DZDoc",DDL,"vc_OilName","d_id"); //从数据库中获取数据
DDL.SelectedIndexChanged+= new System.EventHandler(this.DDP);
}
}private void DDP(object sender, System.EventArgs e)
{
Response.Write("a");
}可是为什么 每次DDL改变了选择项 缺没有执行Response.Write("a");呢??
private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
DropDownList DDL=(DropDownList)e.Item.FindControl("DDL");
if (DDL!=null)
{
if (!IsPostBack)
BindDropDownList("select * from tb_DZDoc",DDL,"vc_OilName","d_id"); //从数据库中获取数据
DDL.SelectedIndexChanged+= new System.EventHandler(this.DDP);
}
}
应该在ItemCreated事件里面或者直接写在html里面参考下文http://blog.csdn.net/brightheroes/archive/2004/11/13/180711.aspx