2009-08-10 83 views
3

我有以下的標記:ASP:列表框 - 回發沒有選定的項目?

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

當我步入代碼隱藏絕對沒有項目被選中!我忘了什麼?

回答

7

你可能重新編寫availableRolesListBox而不是if(!IsPostback)嗎?

+0

啊廢話!你明白了。我的Refresh()方法(重新填充大多數控件)超出了我的!Page.PostBack。 謝謝! – 2009-08-10 15:32:28

+0

不要覺得不好 - 這是一個容易犯的錯誤! – RichardOD 2009-08-10 15:38:38

+0

是的 - 太簡單了!衛生署! – DilbertDave 2012-03-08 12:02:14

1

你可以檢查一些東西。

CHeck你不會在每次回發後重新加載列表框。另外,您可能需要確保父容器沒有ViewStateEnabled="false"

除此之外,您的代碼看起來應該沒問題,進一步調試將需要更多的代碼或信息。

相關問題