这是"Works on My Machine Certification Program"的好候选人。
我有一个LinkButton的代码......
<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来隐藏对话框并显示不同的对话框。 否按钮是一个LinkButton,因为它需要PostBack来处理这个值。
我没有向LinkButton注册的onClick事件,因为我只是检查IsPostBack是否为真。在本地执行时,PostBack工作正常,一切顺利。发布到我们的开发服务器后,否按钮在单击时不会执行任何操作。我在本地测试时使用相同的浏览器,而不是在开发服务器上。
我最初的想法是,验证器可能阻止了PostBack的触发。我在页面的另一部分使用了几个验证器,但它们都被分配给了一个特定的验证组,其中没有分配否 LinkButton。但问题是它为什么不在开发服务器上本地工作。
有什么想法吗?
答案 0 :(得分:1)
检查生产中发出的html并确保它具有__doPostback(),并且没有全局方法观察点击和取消事件。除此之外,如果您认为它可能与验证有关,您可以尝试添加CausesValidation或其他任何错误,看看是否有帮助。否则,“在我的机器上工作”错误很难在没有存在的情况下调试,并且知道DEV与PROD的配置。
答案 1 :(得分:1)
我有类似的问题。我创建了一个带有updatePanel的表单,在表单中有一些链接按钮可以打开一个modalpopup Ajax扩展程序。他们工作正常,直到我在网站上添加了身份验证。之后他们根本没有做任何事情。
阅读你的解决方案我发现一些链接按钮工作,他们是具有CausesValidation明确设置的那些(我只把它放在那些我会使那个真实的那些)。将CausesValidation =“false”添加到所有其他链接按钮,使其在我通过身份验证后正常工作。
感谢大家的评论,它节省了我的一天!
答案 2 :(得分:0)
我对ValidationGroup的理解是没有指定组的按钮会触发页面上的所有验证器。您是否尝试过为LinkButton提供不同的ValidationGroup?