2008-09-18 71 views
0

这是"Works on My Machine Certification Program"的理想选择。LinkBut​​ton未在生产服务器上触发

我有以下代码为一个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发射。我确实在页面的另一部分使用了几个验证器,但它们全部被分配给一个特定的验证组,而这个验证组没有被分配给LinkBut​​ton。然而问题是为什么它在本地而不是在开发服务器上工作。

任何想法?

回答

1

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

+0

这解决了这个问题。我知道“在我的机器上工作”的问题正在复制。任何关于我的本地和开发服务器之间的差异的理论都会导致这种类型的问题? – Chris 2008-09-18 21:29:29

0

我对ValidationGroup的理解是,没有指定组的按钮会触发页面上的所有验证器。你有没有尝试给LinkBut​​ton一个不同的ValidationGroup?

1

我有类似的问题。我创建了一个带有updatePanel的表单,其形式是一些可以打开modalpopup Ajax扩展器的链接按钮。他们工作得很好,直到我为该网站添加身份验证。之后他们根本没有做任何事情。

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

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

+0

为我工作! – Arbaaz 2017-03-20 06:56:12

相关问题