我有以下标记:
<tr>
<td valign="top" align="left">
<asp:Label ID="Label1" runat="server" Text="Available Roles" />
<br />
<asp:ListBox ID="availableRolesListBox" runat="server" SelectionMode="Multiple" Width="100px" Rows="10" AutoPostBack="false" />
</td>
<td valign="top" align="center">
<br />
<asp:Button ID="addToRole" runat="server" Text="--->" OnClick="addToRole_Click" />
<br />
<asp:Button ID="removeFromRole" runat="server" Text="<---" OnClick="removeFromRole_Click" />
</td>
<td valign="top" align="left">
<asp:Label ID="Label2" runat="server" Text="User In Roles" />
<br />
<asp:ListBox ID="userInRolesListBox" runat="server" SelectionMode="Multiple" Width="100px" Rows="10" AutoPostBack="false" />
</td>
</tr>
以下代码隐藏:
protected void addToRole_Click(object sender, EventArgs e)
{
// Add user to the selected role...
foreach (ListItem myItem in availableRolesListBox.Items)
{
if (myItem.Selected)
{
Roles.AddUserToRole(userListBox.SelectedItem.Value, myItem.Text);
}
}
Refresh();
}
当我进入代码隐藏时,绝对没有选择任何项目!我忘记了什么?
答案 0 :(得分:7)
你是否每次重新绑定availableRolesListBox
,而不是if(!IsPostback)?
答案 1 :(得分:1)
你可以查看一些事情。
在每次回发后你都没有重新加载列表框。此外,您可能希望确保父容器没有ViewStateEnabled="false"
。
除了您的代码看起来应该没问题之外,进一步调试将需要更多代码或信息。