RenderControl获取控件输出的HTML
发布时间:2025-12-09 13:44:26
浏览次数:4
之前写过一篇文章,通过实现ICallbackEventHandler接口,实现其两个方法。RaiseCallbackEvent实现回调处理,GetCallbackResult实现将处理产生的结果输出到客户端。
为了实现页面不刷新,我们在GetCallbackResult方法中可以将前台的控件html通过RenderControl方法获取,并Return到客户端
ICallbackEventHandler成员
#regionICallbackEventHandler成员
privatestringg_CallBackResult=string.Empty;
publicstringGetCallbackResult()
{
//前台的控件均放在一个Panel控件当中,只需要获取该Panel的Html代码
Panel_panTask=FindControl(“panTask“)asPanel;
System.IO.StringWritersw=newSystem.IO.StringWriter();
HtmlTextWriterhWriter=newHtmlTextWriter(sw);
_panTask.RenderControl(hWriter);
hWriter.Flush();
hWriter.Close();//关闭掉HtmlTextWriter
g_CallBackResult=sw.ToString();
returng_CallBackResult;//在前台获取该字符串
}
publicvoidRaiseCallbackEvent(stringeventArgument)
{
if(!string.IsNullOrEmpty(eventArgument))
{
DLTBind();
}
}
#endregion
客户端代码:
//
预定每分钟自动刷新当前数据,CallTaskServer方法是在Page_Load时Register进来的js
window.setInterval(
“
CallTaskServer(‘0’,”)
“
,
60000
);
//
这里的rValue便是GetCallbackResult方法的ReturnValue
function
ReceiveTaskServerData(rValue)
{
varobjDiv=document.getElementById(‘<%=panTask.ClientID%>‘);
objDiv.innerHTML=rValue;
}
转载于:https://www.cnblogs.com/jerryshi/archive/2008/07/28/1254711.html