3

我有以下标记:

<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">
        &nbsp;
        <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();
}

当我进入代码隐藏时,绝对没有选择任何项目!我忘记了什么?

4

2 回答 2

7

您是否可能availableRolesListBox每次都重新绑定,而不是 if(!IsPostback)?

于 2009-08-10T15:19:36.010 回答
1

你可以检查几件事。

检查您没有在每次回发后重新加载列表框。此外,您可能希望确保没有ViewStateEnabled="false"父容器。

除了您的代码看起来应该没问题之外,进一步调试将需要更多代码或信息。

于 2009-08-10T15:24:00.667 回答