AJAX完全禁用了按钮点击事件的回发

时间:2011-10-21 18:27:46

标签: asp.net ajax updatepanel asp.net-4.0 scriptmanager

我在我的用户控件中添加了ScriptManagerUpdatePanel,但现在该页面根本没有回发。这是页面上ScriptManager的唯一实例。我正在使用VS 2010,我的项目是使用4.0框架编译的。 EnablePartialRendering控件中的true设置为ScriptManager。我可以在某个地方错过装配参考/注册吗?

<asp:ScriptManager ID="ScriptManager1" runat="server" /> 

<asp:UpdatePanel ID="UpdatePanel1" runat="Server" UpdateMode="Conditional">
    <ContentTemplate> 
        <asp:ImageButton ID="SignUp" runat="server" AlternateText="SignUp"
            class="tips_button" ImageUrl="/~/myimage.ashx"
            onclick="SignUp_Click" ToolTip="Find" /> 
    </ContentTemplate>
    <Triggers> 
        <asp:AsyncPostBackTrigger ControlID="SignUp" EventName="Click" /> 
    </Triggers> 
</asp:UpdatePanel>

2 个答案:

答案 0 :(得分:1)

Trigger UpdatePanel内的任何控件都不需要ContentTemplate设置。默认情况下,所有控件都将使用ajax进行回发,然后将呈现ContentTemplate中的新内容。

你有一个Trigger设置已经在里面的控件,这可能是导致问题的原因所以删除它是没有必要的。如果希望TriggerUpdatePanel之外的控件“触发”,则可以使用ContentTemplate

其他一切看起来都不错。确保在代码隐藏中设置SignUp_Click并通过在Page_Load中的某些代码上设置一个断点来测试它,这些代码应该在有回发时随时被点击。

方面问题:ImageUrl="/~/myimage.ashx"中的代码ImageButton看起来有些奇怪......开头的额外斜线可能会导致一些问题。

答案 1 :(得分:0)

尝试将UpdateMode更改为Always而不是Conditional。此外,对于这个简单的事情,您不需要指定任何触发器。如果未指定触发器,则控件假定所有内容都应该是异步的。

我还会检查以确保所需的字段验证器不会干扰回发。要对此进行测试,请将CausesValdiation的{​​{1}}属性设置为false。