没有分了,请各位高手帮助!怎么来获得Repeater控件中dropdownlist的值?
我的代码如下:前台代码:
<asp:Repeater ID="Repeater1" runat="server"
OnItemDataBound="Repeater1_ItemDataBound" onitemcommand="Repeater1_ItemCommand">
<ItemTemplate>
<tr>
<td>
<%# Eval("userId") %>
</td>
<td>
<asp:DropDownList ID="ddlDeps" runat="server">
</asp:DropDownList>
</td>
<td>
<asp:LinkButton ID="LinkButton1" CommandArgument ='<%# Eval("userId") %>' CommandName ="pass"
runat="server">PASS</asp:LinkButton>|<asp:LinkButton
ID="LinkButton2" CommandName ="del" CommandArgument ='<%# Eval("userId") %>' runat="server">
删除</asp:LinkButton>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
后台代码:
--------------------编程问答-------------------- ddl.SelectedItem.Value --------------------编程问答-------------------- pageload中添加
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) //数据绑定,能正常绑定
{
if (e.Item.ItemType == ListItemType.Item||e.Item .ItemType ==ListItemType .AlternatingItem )
{
DropDownList d = (DropDownList)e.Item.FindControl("ddlDeps");
d.DataSource = new depOperate().getAllDep();
d.DataTextField = "depName";
d.DataValueField = "depId";
d.DataBind();
}
}
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName =="pass")
{
int userId = Convert.ToInt32(e.CommandArgument.ToString());
DropDownList d = (DropDownList)e.Item.FindControl("ddlDeps");
DropDownList d1 = (DropDownList)e.Item.FindControl("ddlUserType");
int depId = Convert.ToInt32(d.SelectedValue ); //depId的值为什么总是第一个值呢,无论选择哪一个,显示的总是第一个
项目的值
Response.Write(depId);
}
}
if(!IsPostBack){} --------------------编程问答-------------------- mark
补充:.NET技术 , 非技术区