对我来说非常奇怪的行为。我的ASP.NET用户控件中有两个html按钮,它们附加了onclick事件处理程序。但它回发了,我看到容器页面的Load事件被击中。但是没有命中用户控件本身的页面加载。我不想要这个回发。它应该表现为html控件,不应该回发页面。
请建议导致它回发的逻辑,并且仅在容器页面级别而不是它自己的page_load。还请告诉我如何避免这种行为。
UserControl代码
<%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
<input type="button" id="btnMarkAll" value="MarkAll" onclick="CallServer('Mark', ''); return false;" />
<input type="button" id="btnUnMarkAll" value="UnMarkAll" onclick="CallServer('UnMark', '');" />
function ReceiveServerData(arg, context) {}
ClientScriptManager cm = Page.ClientScript;
string cbReference = cm.GetCallbackEventReference(this, "arg", "ReceiveServerData", "");
string callBackScript = "function CallServer(arg, context) {" + cbReference + ";}";
cm.RegisterClientScriptBlock(this.GetType(), "CallServer", callBackScript, true);
public void RaiseCallbackEvent(String eventArgument){}
public string GetCallbackResult()
{
return strReturn;
}
似乎回调未正确注册。
我在容器aspx页面和raisecallbackevent函数的页面加载事件上保留了调试器。奇怪的是,当我单击UnMark按钮(这是一个HTML控件)时,页面加载事件调试器被命中,但raisecallbackevent调试器没有被命中。
首先是为什么会发生PageLoad事件,其次是为什么RaiseCallBackEvent调试器没有命中。