代码之家  ›  专栏  ›  技术社区  ›  Chris

生产服务器上未触发LinkButton

  •  0
  • Chris  · 技术社区  · 17 年前

    这是一个很好的候选人 "Works on My Machine Certification Program" .

    我有以下链接按钮的代码…

    <cc1:PopupDialog ID="pdFamilyPrompt" runat="server" CloseLink="false" Display="true">
      <p>Do you wish to upgrade?</p>
      <asp:HyperLink ID="hlYes" runat="server" Text="Yes" CssClass="button"></asp:HyperLink>
      <asp:LinkButton ID="lnkbtnNo" runat="server" Text="No" CssClass="button"></asp:LinkButton>
    </cc1:PopupDialog>
    

    它使用一个自定义控件,只需在内容前后添加代码,即可将其作为弹出对话框进行格式化。这个 是的 按钮是一个超链接,因为它执行javascript来隐藏对话框并显示另一个对话框。这个 Button是一个LinkButton,因为它需要回发来处理此值。

    我没有用LinkButton注册onclick事件,因为我只是检查isPostback是否为真。当在本地执行时,回发工作正常,一切正常。当发布到我们的开发服务器时, 单击按钮时不执行任何操作。在本地测试和在开发服务器上测试时,我使用的是相同的浏览器。

    我最初的想法是,也许一个验证器正在阻止回发触发。我确实在页面的另一部分使用了两个验证器,但是它们都被分配给一个特定的验证组, LinkButton未分配给。然而,问题在于,它为什么不在开发服务器上本地工作。

    有什么想法吗?

    3 回复  |  直到 17 年前
        1
  •  1
  •   Quintin Robinson    17 年前

    检查在生产时发出的HTML,确保它具有uDoPostback(),并且没有全局方法监视单击和取消事件。除此之外,如果您认为它可能与验证有关,您可以尝试将causesvalidation或其他内容添加到false,看看这是否有帮助。否则,“在我的机器上工作”错误在不存在并且不知道dev和prod的配置的情况下很难调试。

        2
  •  1
  •   yougotiger    16 年前

    我也有类似的问题。我用updatepanel创建了一个表单,表单中有一些链接按钮可以打开modalpopupAjax扩展程序。在我向站点添加身份验证之前,它们工作得很好。之后他们什么都没做。

    在阅读您的解决方案时,我发现一些链接按钮正在工作,它们是设置了CausesValidation明确设置的按钮(我只将其放在我将要实现这一点的按钮中)。将causesvalidation=“false”添加到所有其他链接按钮后,它们可以在我通过身份验证后正常工作。

    谢谢大家的评论,这节省了我的一天!

        3
  •  0
  •   Tim Booker    17 年前

    我对validationgroup的理解是,没有指定组的按钮将触发页面上的所有验证程序。是否尝试为LinkButton提供其他验证组?