2010-04-30 65 views
0

我在从中选择一些项目后处理列表框时遇到问题。在我的标记中,列表框包含在一个asp:面板中,并在页面加载时在代码隐藏期间填充。这部分工作正常。ASP.Net列表框选择不能在面板中工作?

这是当我选择各种项目,并提交,我有麻烦。我的处理程序遍历列表框项目,但没有看到任何被选中。我不知道为什么。

这里的标记:

  <asp:Panel ID="panEdit" runat="server" Height="180px" Width="400px" CssClass="ModalWindow"> 
      <table width="100%"> 
      <asp:label runat = "server">Choose your items</asp:label> 

       <tr> 
        <td> 
         <asp:ListBox ID="lstFundList" runat="server" SelectionMode="Multiple" OnLoad="lstFundList_LoadData"> 

         </asp:ListBox> 
        </td> 
       </tr> 
      </table> 

      <asp:Button ID="btnUpdate" runat="server" Text="Update" OnClick="btnUpdate_OnClick"/> 
      <asp:Button ID="btnCancel" runat="server" Text="Cancel" OnClientClick="$find('ModalPopupExtender1').hide(); return false;" /> 

      </asp:Panel> 

在我btnUpdate_OnClick处理程序我看不到作为所选的任何标记列表框项目。我认为回发和面板方面正在发生一些奇怪的事情?

回答

1

我同意,这是最有可能的回传问题。确保填充列表框的代码被包装在这样的东西中:

if (!Page.IsPostBack) 
{ 
    // populate your list 
} 
1

...在代码隐藏

页面加载过程中填充的是包裹在IsPostback条件?如果没有,那么你只是覆盖返回的值。

'的OnLoad = “lstFundList_LoadData”

您可能要检查方法太....

0

谢谢大家。果然,事实证明这是一个IsPostBack问题。它被用于我们所有的页面(毫无疑问是你的),并且已经成为一种背景噪音,而我在这里只是错过了它。