0

这是“Works on My Machine 认证计划”的理想候选者。

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

<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>

它使用自定义控件,只需在内容之前和之后添加代码以将其格式化为弹出对话框。Yes按钮是一个 HyperLink ,因为它执行 javascript 来隐藏对话框并显示不同的对话框。No按钮是一个 LinkBut​​ton ,因为它需要 PostBack 来处理这个值。

我没有使用 LinkBut​​ton 注册 onClick 事件,因为我只是检查 IsPostBack 是否为真。在本地执行时,PostBack 工作正常,一切顺利。当发布到我们的开发服务器时,单击“否”按钮不会执行任何操作。在本地测试与在开发服务器上测试时,我使用相同的浏览器。

我最初的想法是,也许验证器正在阻止 PostBack 触发。我确实在页面的另一部分使用了几个验证器,但它们都分配给了一个特定的验证组,而没有分配没有链接按钮。然而问题是为什么它不能在开发服务器上本地工作。

有任何想法吗?

4

3 回答 3

1

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

于 2008-09-18T20:57:47.437 回答
1

我有一个类似的问题。我创建了一个带有 updatePanel 的表单,表单中有一些可以打开 modalpopup Ajax 扩展器的链接按钮。在我向站点添加身份验证之前,它们运行良好。在那之后,他们什么也没做。

阅读您的解决方案,我发现一些链接按钮正在工作,它们是明确设置了 CausesValidation 的链接按钮(我只将它放入那些我会做到这一点的地方)。将 CausesValidation="false" 添加到所有其他链接按钮允许它们在我通过身份验证后正常工作。

谢谢大家的评论,它拯救了我的一天!

于 2010-04-28T23:59:15.283 回答
0

我对 ValidationGroup 的理解是,没有指定组的按钮会触发页面上的所有验证器。您是否尝试过为 LinkBut​​ton 提供不同的 ValidationGroup?

于 2008-09-18T21:01:03.203 回答