【问题标题】:Drop Down list Causing Full Post Back With a Weird Error下拉列表导致完全回发并出现奇怪的错误
【发布时间】:2012-04-06 06:54:06
【问题描述】:

我在更新面板中使用了一个下拉列表。我设置了所需的条件,但它仍然导致完整的回发。我搜索并尝试了我得到的所有东西,但它仍然坚持错误。

当我更改所选索引时,它会导致整页发布并显示错误(由火灾错误)

Sys.WebForms.PageRequestManagerServerErrorException:Sys.WebForms.PageRequestManagerServerErrorException: Invalid postback or callback argumentEvent validation is enabled using <pages enableEventValidation="true"/> inconfiguration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes,this feature verifies that arguments to postback or callback events originatefrom the server control that originally rendered them. If the data is valid and expected,use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.' when calling method:[nsIDOMEventListener::handleEvent]

这是我的代码


<asp:ToolkitScriptManager ID="ToolkitScriptManager1" 
 runat="server" EnablePageMethods="true" EnablePartialRendering="true">
 </asp:ToolkitScriptManager>

更新面板代码


<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true"  >
                    <ContentTemplate>
                        <table cellpadding="0" cellspacing="0" width="100%" height="100%">
                            <tr>
                                <td>
                                    <asp:DropDownList ID="DDLCity" runat="server" CausesValidation="false" AutoPostBack="True" OnSelectedIndexChanged="DDLCity_SelectedIndexChanged"
                                        Width="200px">
                                    </asp:DropDownList>
                                </td>
                                <td>
                                    <asp:Label ID="Label19" runat="server" Text="Pin Code"></asp:Label>
                                </td>
                                <td>
                                    <asp:TextBox ID="TxtPinCode" runat="server" Height="20px" ReadOnly="True" ToolTip="Pin Code"
                                        Width="100px"></asp:TextBox>
                                    <asp:TextBoxWatermarkExtender ID="TxtPinCode_TextBoxWatermarkExtender" runat="server"
                                        Enabled="True" TargetControlID="TxtPinCode" WatermarkCssClass="WaterMark" WatermarkText="XXXXXX">
                                    </asp:TextBoxWatermarkExtender>
                                    <asp:RequiredFieldValidator ID="RFVINCODE" runat="server" ControlToValidate="txtarea"
                                        ErrorMessage="Pin Code Required" Text="*">*</asp:RequiredFieldValidator>
                                </td>
                                <td>
                                    <asp:Label ID="Label17" runat="server" Text="State"></asp:Label>
                                </td>
                                <td>
                                    <asp:DropDownList ID="ddlstate" runat="server" Height="24px" OnSelectedIndexChanged="ddlstate_SelectedIndexChanged"
                                        ToolTip="State" Width="200px">
                                        <asp:ListItem>State</asp:ListItem>
                                    </asp:DropDownList>
                                </td>
                            </tr>
                        </table>
                    </ContentTemplate>
                    <Triggers>
                        <asp:AsyncPostBackTrigger ControlID="DDLCity" EventName="SelectedIndexChanged" />
                    </Triggers>
                </asp:UpdatePanel>

请帮我解决这个问题

我也尝试过这种情况,但这也不起作用。

protected override void Render(HtmlTextWriter writer)
    {
        ClientScript.RegisterForEventValidation(DDLCity.UniqueID.ToString());
        ClientScript.RegisterForEventValidation(txtarea.UniqueID.ToString());
        ClientScript.RegisterForEventValidation(ddlstate.UniqueID.ToString());

        base.Render(writer);

    }

【问题讨论】:

  • 有时我们Enable/Disable Page Level PermissionAjaxWeb.Config。您对此页面的web.config 中的location tag 有任何设置吗?
  • 在使用 ACT 2.0 和为 .net 4.0 编译的代码时遇到同样的问题,请检查版本。
  • ACT 3.5 和 .net 3.5 框架
  • @PankajGarg 是的,但不是这个页面
  • 页面加载后是否有 JavaScript 改变下拉列表的值?

标签: asp.net asp.net-ajax ajaxcontroltoolkit


【解决方案1】:

为此页面添加Location Tag 设置,这将授予执行事件asynchronously 的权限。

更多信息请查看herehere

【讨论】:

  • 我通过回调接口找到了另一种方法。感谢考虑
  • 我试过了,但在我的情况下它不起作用。可能是我无法找出的其他问题
  • 请添加您自己的答案,如果您自己的观点有效并接受它。这对未来的用户很有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-26
  • 2014-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-19
相关资源
最近更新 更多