LinkBut​​ton不在生产服务器上触发

时间:2008-09-18 20:53:38

标签: c# asp.net

这是"Works on My Machine Certification Program"的好候选人。

我有一个LinkBut​​ton的代码......

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

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

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

我最初的想法是,验证器可能阻止了PostBack的触发。我在页面的另一部分使用了几个验证器,但它们都被分配给了一个特定的验证组,其中没有分配 LinkBut​​ton。但问题是它为什么不在开发服务器上本地工作。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

我有类似的问题。我创建了一个带有updatePanel的表单,在表单中有一些链接按钮可以打开一个modalpopup Ajax扩展程序。他们工作正常,直到我在网站上添加了身份验证。之后他们根本没有做任何事情。

阅读你的解决方案我发现一些链接按钮工作,他们是具有CausesValidation明确设置的那些(我只把它放在那些我会使那个真实的那些)。将CausesValidation =“false”添加到所有其他链接按钮,使其在我通过身份验证后正常工作。

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

答案 2 :(得分:0)

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