【问题标题】:ASP.Net ListBox selections not working in Panel?ASP.Net 列表框选择在面板中不起作用?
【发布时间】:2010-04-30 23:52:13
【问题描述】:

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

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

这是标记:

            <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 处理程序中,我看不到任何标记为选中的列表框项目。我认为回发和面板发生了一些奇怪的事情?

【问题讨论】:

    标签: asp.net postback panel


    【解决方案1】:

    我同意,这很可能是回发问题。确保填充列表框的代码包含在如下内容中:

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

    【讨论】:

      【解决方案2】:

      ...在页面加载期间在代码隐藏中填充

      是否包含在 IsPostback 条件中?如果没有,那么您只是覆盖了返回的值。

      `OnLoad="lstFundList_LoadData"

      您可能也想检查该方法....

      【讨论】:

        【解决方案3】:

        谢谢大家。果然,原来是 IsPostBack 问题。它在我们所有的页面(毫无疑问是你的)中都使用过,并且已经成为一种背景噪音,我只是在这里忽略了它。

        【讨论】:

          猜你喜欢
          • 2014-08-17
          • 2016-03-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-07
          • 1970-01-01
          • 2016-02-03
          相关资源
          最近更新 更多