0

背景:我有一个捆绑列表框,一旦通过 Web 服务选择了运营商,它就会从运营商列表框中继承值。

  • 我在按钮上有一个validationGroup,我在点击处理程序上使用了Page.IsValid,它显示“Nothing”。
  • 当我在 IE8 中选择不同的运营商时,它会重置其他表单值,但不会在 IE9 中。
  • 在 lbCarriers 上使用 Autopost=false,Bundles 列表框不会加载任何数据。
  • 在“lbCarriers”中使用 CausesValidation="true",Bundles 列表框也不会加载任何数据您知道如何使用 Ajax 来做到这一点吗?
  • 你知道我怎么能用 Ajax 做到这一点吗?

问题:当我选择了捆绑包时,在捆绑包列表框上使用必填字段验证器会返回错误错误。当我单击“发送”按钮时,我收到“选择至少 1 个捆绑包”错误消息,但邀请仍会发出,我会收到一封电子邮件。

这是应用程序的屏幕截图:

Validation_Listbox_Error

default.aspx 页面上的 asp.net 代码:

    <tr>
        <td class="style5">
            Carrier:<br />
            <font size="1">*Hold Ctrl Key Down to Select Multiple Carriers</font></td>
        <td bgcolor="#ffffff" class="style7">
            <asp:ListBox ID="lbCarriers" SelectionMode="Multiple" AutoPostBack="true" 
                runat="server" Height="86px" Width="250px" ValidationGroup="ValidationGroup">
            </asp:ListBox>
        </td>

        <td bgcolor="#ffffff" class="style2">

                    <asp:RequiredFieldValidator ID="CarrierValidator" runat="server" Text="*"
                        ErrorMessage="Select At Least 1 Carrier"  ControlToValidate="lbCarriers"
                        ValidationGroup = "ValidationGroup" ForeColor="Red" ></asp:RequiredFieldValidator>

        </td>
   </tr>

   <tr>
   <td class="style1">
            Bundles:<br />
            <font size="1">*Hold Ctrl Key Down to Select Multiple Bundles</font></td>

   <td bgcolor="#ffffff" class="style6">
            <asp:ListBox ID="bundles" SelectionMode="Multiple" runat="server" Height="86px" 
                Width="250px" Enabled="True" 
                ValidationGroup="ValidationGroup" CausesValidation="True">
            </asp:ListBox>
   </td>

   <td bgcolor="#ffffff" class="style2">
              <asp:RequiredFieldValidator ID="BundleValidator" runat="server" Text="*"
                        ErrorMessage="Select At Least 1 Bundle" ControlToValidate="bundles"
                        ValidationGroup = "ValidationGroup" ForeColor="Red" ></asp:RequiredFieldValidator>

    </td>
    </tr>

     <asp:Button ID="Send_Button" runat="server" 
                Text="Send Invitation" ValidationGroup="ValidationGroup" Width="123px"/>
        &nbsp;<br />
            <asp:Label ID="Send_Success" runat="server" Text="Invitation sent!"  Visible="false"></asp:Label>

            <br />
            <asp:ValidationSummary ID="ValidationSummary" runat="server" ForeColor="Red" 
                ValidationGroup="ValidationGroup" />

问题:对于这个问题,您推荐什么替代代码或解决方法?

感谢您的关注!

4

1 回答 1

0

编辑 添加 CausesValidation="true""lbCarriers"

我已从Autopost="true"第一个列表框中删除,即“lbCarriers”,它现在正在工作。

于 2011-06-17T17:51:23.807 回答