在Repeater中使用DropDownList的方法
在Repeater中使用DropDownList的方法
以下代码并不完整,只记录了关键的方法
aspx代码中
假设这是一个用户管理的系统的模型,有一个下拉菜单来操作用户状态
1 <asp:Repeater ID="RepeaterArticleList" runat="server" onitemdatabound="RepeaterArticleList_ItemDataBound"> 2 <ItemTemplate> 3 <asp:HiddenField ID="HiddenField1" Value=<%#Eval("ID") %> runat="server" /> 4 5 <asp:DropDownList ID="droplist1" runat="server" OnSelectedIndexChanged="DropDownList1_Change" AutoPostBack="true" > 6 <asp:ListItem Text="启用" Value="1"></asp:ListItem> 7 <asp:ListItem Text="禁用" Value="2"></asp:ListItem> 8 <asp:ListItem Text="删除" Value="3"></asp:ListItem> 9 </asp:DropDownList> 10 </ItemTemplate> 11 </asp:Repeater>
cs代码中对应的DropDownList1_Change方法,取到用户ID,执行操作
1 protected void DropDownList1_Change(object sender, EventArgs e) 2 {
3 DropDownList drd = sender as DropDownList; 4 Repeater rps = drd.Parent.Parent as Repeater; 5 int n = ((RepeaterItem)drd.Parent).ItemIndex; 6 HiddenField hid = (HiddenField)(rps.Items[n].FindControl("HiddenField1")); 7 string userid= hid.Value; 8 string userState = Convert.ToInt32(drd.SelectedValue); 9 10 //已经拿到了id,可以进行操作 11 12 YourFunction(userid,userState); 13 }
在前台显示的时候,再根据用户的状态值,来选择下拉菜单的默认选中值首先为RepeaterRepeater 控件添加事件 onitemdatabound="RepeaterArticleList_ItemDataBound" 接下来是完成代码
1 protected void RepeaterArticleList_ItemDataBound(object sender, RepeaterItemEventArgs e) 2 { 3 DropDownList drd = (DropDownList)e.Item.FindControl("droplist1"); 4 HiddenField hid = (HiddenField)(e.Item.FindControl("HiddenField1")); 5 //用你的方法通过ID得到状态值到userstate 6 string userstate = getUserStateByID(hid.Value); 7 drd.SelectedValue = userstate ; 8 9 }