1

我正在使用放置在 ajax 选项卡容器中的下拉列表。但即使我已将 autopostback 属性设置为 true,它也不会回发。这仅在 Firefox 中发生,而不在 IE 或 chrome 中发生。任何人都可以帮助我解决这个问题。我正在使用 ajax 工具包版本4.1.50731.0。

 <asp:TabContainer ID="TabContainer2" runat="server" Width="100%" CssClass="myTab"
    Height="2200px" ActiveTabIndex="0">
    <asp:TabPanel ID="TabPanel8" runat="server" HeaderText="Add Transaction">
        <ContentTemplate>
            <div>
                <table class="style1">

                    <tr>
                        <td class="style16">
                            &nbsp;
                        </td>
                        <td align="right" class="style15">
                            Select&#160;News Heading :&#160;&#160;
                        </td>
                        <td>
                            <asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
                                AutoPostBack="True" >
                            </asp:DropDownList>
                            <asp:RequiredFieldValidator ID="RequiredFieldValidator12" runat="server" ControlToValidate="DropDownList1"
                                ErrorMessage="Please Select News Heading" ValidationGroup="a" InitialValue="Select News Heading">*</asp:RequiredFieldValidator><asp:ValidatorCalloutExtender
                                    ID="RequiredFieldValidator12_ValidatorCalloutExtender" runat="server" Enabled="True"
                                    TargetControlID="RequiredFieldValidator12">
                                </asp:ValidatorCalloutExtender>
                            <asp:Label ID="Label3" runat="server"></asp:Label>
                        </td>
                        <td>
                            &#160;&#160;
                        </td>
                    </tr>
                    <tr>
                        <td class="style16">
                            &#160;&#160;
                        </td>
                        <td align="right" class="style15">
                            &#160;&#160;
                        </td>
                        <td>
                            &#160;&#160;
                        </td>
                        <td>
                            &#160;&#160;
                        </td>
                    </tr>
                    <tr>
                        <td class="style16">
                            &#160;&nbsp;
                        </td>
                        <td align="right" class="style15">
                            Select Sub Heading :&#160;
                        </td>
                        <td>
                            <asp:DropDownList ID="DropDownList2" runat="server" OnLoad="DropDownList2_Load">
                            </asp:DropDownList>
                            <asp:RequiredFieldValidator ID="RequiredFieldValidator14" runat="server" ControlToValidate="DropDownList2"
                                ErrorMessage="Please select sub heading" ValidationGroup="a" InitialValue="Select News Name">*</asp:RequiredFieldValidator><asp:ValidatorCalloutExtender
                                    ID="RequiredFieldValidator14_ValidatorCalloutExtender" runat="server" Enabled="True"
                                TargetControlID="RequiredFieldValidator14">
                            </asp:ValidatorCalloutExtender>
                        <asp:Label ID="Label4" runat="server"></asp:Label>
                    </td>
                    <td>
                        &#160;&nbsp;
                    </td>
                </tr>

            </ContentTemplate>
        </asp:TabPanel>
    </asp:TabContainer>
4

2 回答 2

0

您似乎确实缺少内容模板中的结束</table></div>标记。

添加这些可以解决您的问题吗?

编辑

您的 javascript 控制台(例如 firefox 中的 firebug)是否给您任何 javascript 错误?

于 2013-01-15T10:31:17.080 回答
0

我认为您的问题的解决方案是:

如果验证失败,则DropDownList不会回发,因此请通过禁用 Validators 尝试一次DropDownList

需要注意的几点

  1. RequiredFieldValidator应该有Display="None"你正在使用ValidatorCalloutExtender
  2. 穿上和CausesValidation_DropDownListRequiredFieldValidator
  3. 这将导致在服务器端自动触发验证。
  4. Page.IsValidSelectedIndexChanged继续任何其他代码部分之前检查事件处理程序。
于 2013-01-15T12:45:14.293 回答