您的位置:首页 > 运维架构

在DataGrid中使用DropDownList(原创)

2006-02-16 11:07 701 查看
B/S架构的MIS中,在DataGrid中使用DropDownList是很常见的事情
Html代码如下:

<asp:TemplateColumn HeaderText="细目">

<HeaderStyle Width="15%"></HeaderStyle>

<ItemTemplate>

<asp:Label Runat=server Text='<%#DataBinder.Eval(Container, "DataItem.TicketType")%>'></asp:Label>

</ItemTemplate>

<EditItemTemplate>

<asp:DropDownList id="ddl_Detail" runat="server" Width="100%">

<asp:ListItem Value="Train">火车票</asp:ListItem> <asp:ListItem Value="Air">机票</asp:ListItem>

<asp:ListItem Value="Taxi">计程车费</asp:ListItem>

<asp:ListItem Value="Bus">公共汽车费</asp:ListItem>

<asp:ListItem Value="Book">订票费</asp:ListItem>

<asp:ListItem Value="Other">其它</asp:ListItem>

</asp:DropDownList>

<asp:Label Runat=server ID=lbl_Detail Text='<%#DataBinder.Eval(Container, "DataItem.TicketType")%>' Visible=False></asp:Label>

</EditItemTemplate>

</asp:TemplateColumn>

<asp:TemplateColumn HeaderText="来程/去程">

<HeaderStyle Width="15%"></HeaderStyle>

<ItemTemplate>

<asp:Label Runat=server Text='<%#DataBinder.Eval(Container, "DataItem.ComeOrBack")%>'></asp:Label>

</ItemTemplate>

<EditItemTemplate>

<asp:DropDownList id="ddl_ComeOrBack" runat="server" Width="100%">

<asp:ListItem Value="Come">来程</asp:ListItem>

<asp:ListItem Value="Back">去程</asp:ListItem>

</asp:DropDownList>

<asp:Label Runat=server ID="lbl_ComeOrBack" Text='<%#DataBinder.Eval(Container, "DataItem.ComeOrBack")%>' Visible=False></asp:Label>

</EditItemTemplate>

</asp:TemplateColumn>

这个DataGrid的第一个Column是编辑列,DropDownList放在EditItemTemplate里,点击“修改”,问题出现了,修改前的细目是“计程车票”,点击“编辑”后,如何使ddl的index还保持在继承车票上呢?C#代码如下:

private void dg_Detail_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)

OK啦!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: