大家好,又见面了,我是你们的朋友全栈君。
之前写过一篇文章,通过实现ICallbackEventHandler接口,实现其两个方法。RaiseCallbackEvent实现回调处理,GetCallbackResult实现将处理产生的结果输出到客户端。
为了实现页面不刷新,我们在GetCallbackResult方法中可以将前台的控件html通过RenderControl方法获取,并Return到客户端


ICallbackEventHandler 成员
#region ICallbackEventHandler 成员

private string g_CallBackResult = string.Empty;
public string GetCallbackResult()
{
//前台的控件均放在一个Panel控件当中,只需要获取该Panel的Html代码
Panel _panTask = FindControl(“panTask“) as Panel;
System.IO.StringWriter sw = new System.IO.StringWriter();
HtmlTextWriter hWriter = new HtmlTextWriter(sw);
_panTask.RenderControl(hWriter);
hWriter.Flush();
hWriter.Close();//关闭掉HtmlTextWriter
g_CallBackResult = sw.ToString();
return g_CallBackResult;//在前台获取该字符串
}
public void RaiseCallbackEvent(string eventArgument)
{
if (!string.IsNullOrEmpty(eventArgument))
{
DLTBind();
}
}
#endregion
客户端代码:

//
预定每分钟自动刷新当前数据,CallTaskServer方法是在Page_Load时Register进来的js

window.setInterval(
“
CallTaskServer(‘0’,”)
“
,
60000
);

//
这里的rValue便是GetCallbackResult方法的ReturnValue

function
ReceiveTaskServerData(rValue)


{
var objDiv = document.getElementById(‘<%=panTask.ClientID %>‘);
objDiv.innerHTML = rValue;
}
转载于:https://www.cnblogs.com/jerryshi/archive/2008/07/28/1254711.html
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162051.html原文链接:https://javaforall.net
