【问题标题】:Double postback issue双重回发问题
【发布时间】:2010-09-06 10:14:30
【问题描述】:

我有一个 ASP.NET 1.1 应用程序,我试图找出为什么当我更改用于填充另一个值的 ComboBox(父子关系)时,会产生两个回发。

我查了查代码,没找到原因。

这两个调用堆栈都以 page_load 结尾

第一次回发(由 ComboBox 的自动回发生成)

Postback call stack(坏掉)

第二次回发(这就是我想找出它发生的原因)

alt text(坏掉)

有什么建议吗?我可以检查什么?

【问题讨论】:

  • 如果你重新上传你的图片会很棒:)

标签: asp.net .net-1.1


【解决方案1】:

这是这段代码的一个非常具体的问题,我怀疑它对其他人有用,但它是这样的:

在组合的onchange 中添加了一个检查,如果满足条件,则会显式调用回发函数。 如果组合设置为AutoPostback,asp.net 再次添加回发调用,产生两个回发...

生成的html是这样的:

[select onchange="javascript: if (CustomFunction()){__doPostBack('name','')}; __doPostBack('name','')"]

【讨论】:

    【解决方案2】:

    这是一个非常古老的帖子,但人们仍在寻找解决方案,就像我上周所做的一样。

    就像 Grenby 所说的双重事件是主要原因 - 但移除其中一个事件并非总是一种选择。至少在我的情况下,我必须在第 3 方的申请中解决这个问题。

    我在母版页上添加了以下脚本并修改了 ASP 表单:

    <script>var Q = 0;</script>
    <form id="Form1" runat="server" onsubmit="Q++; if(Q==1){return true;} else { return false;}">
    

    这似乎有效,请转发您的 cmets。

    阿伦

    http://www.velocityreviews.com/forums/t117900-asp-net-multiple-postback-issue.html

    【讨论】:

      【解决方案3】:

      检查 Request.Form["__EVENTTARGET"] 以找到启动回发的控件 - 这可能会帮助您缩小范围。

      查看调用堆栈和一些反射(到 ASP.NET 2 - 我手边没有 1.1) - 看起来 SessionStateModule.PollLockedSessionCallback 是 HttpApplication 启动例程的一部分。您的应用可能正在被回收 - 我很确定某个事件已被写入事件日志中。

      我唯一的其他建议是 Fiddler 或客户端上的其他东西来捕获 HTTP 流量。

      【讨论】:

        【解决方案4】:

        你有什么代码可以分享吗?过去,双重回帖在经典 ASP 中困扰着我,最终促使我一劳永逸地切换到 .NET。每当我在 .NET 中遇到此类问题时,我都会转到每个 CONTROL 和每个 PAGE 元素(例如 load、init、prerender、click、SelectedIndexChanged 等)并放置一个断点。

        即使我没有代码,我也会插入类似的内容:

        Dim i As Integer
        i = 0
        

        我通常能够查明一些我没有预料到的操作并根据需要进行修复。我建议你在这里这样做。

        祝你好运。

        【讨论】:

          【解决方案5】:

          我要查找的第一件事是您没有将第二个 ComboBox 的 AutoPostBack 属性设置为 true。如果您更改第二个组合中的值并将该属性设置为 true,我相信它会在该控件上生成回发。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-07-14
            • 2020-01-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多