我在我的用户控件中添加了ScriptManager
和UpdatePanel
,但现在该页面根本没有回发。这是页面上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>
答案 0 :(得分:1)
Trigger
UpdatePanel
内的任何控件都不需要ContentTemplate
设置。默认情况下,所有控件都将使用ajax进行回发,然后将呈现ContentTemplate
中的新内容。
你有一个Trigger
设置已经在里面的控件,这可能是导致问题的原因所以删除它是没有必要的。如果希望Trigger
被UpdatePanel
之外的控件“触发”,则可以使用ContentTemplate
。
其他一切看起来都不错。确保在代码隐藏中设置SignUp_Click
并通过在Page_Load
中的某些代码上设置一个断点来测试它,这些代码应该在有回发时随时被点击。
方面问题:ImageUrl="/~/myimage.ashx"
中的代码ImageButton
看起来有些奇怪......开头的额外斜线可能会导致一些问题。
答案 1 :(得分:0)
尝试将UpdateMode
更改为Always
而不是Conditional
。此外,对于这个简单的事情,您不需要指定任何触发器。如果未指定触发器,则控件假定所有内容都应该是异步的。
我还会检查以确保所需的字段验证器不会干扰回发。要对此进行测试,请将CausesValdiation
的{{1}}属性设置为false。