ScriptManager.RegisterClientScriptBlock + jQuery.getScript
1、封装ScriptManager.RegisterClientScriptBlock
/// <summary>
/// Register Javascript block to Client Page
/// </summary>
/// <param name="page">Page Instance</param>
/// <param name="funStr">Javascript function codes</param>
/// <remarks></remarks>
public static void RegisterScriptBlock(Page page, string funStr)
{
if (page == null)
{
throw new ArgumentNullException("page", "page parameter can not be null.");
}
if (string.IsNullOrEmpty(funStr))
{
funStr = string.Empty;
}
string strFun = string.Empty;
string msgFunId = Guid.NewGuid().ToString();
strFun += "<script type=\"text/javascript\">" + Environment.NewLine;
strFun += funStr + Environment.NewLine;
strFun += "</script>" + Environment.NewLine;
ScriptManager.RegisterClientScriptBlock(page, page.GetType(), msgFunId, strFun, false);
}
2、新建scriptreference.js,写入所有因UpdatePanel失效的JavaScript脚本,如:
/*!
& UpdatePanel局部刷新,加载JavaScript脚本
& 2018-3-9 23:19:54
& lzw
请注意:
前台引入jQuery库,<script src="/js/jquery.min.js?v=2.1.4"></script>
Page_Load方法内,开始位置,加入代码:
//==*局部刷新,加载JavaScript脚本*==//
ScriptHelper.RegisterScriptBlock(this.Page, "$.getScript(\"/manage/js/scriptreference.js\");");
*/
/*menu_edit.aspx*/
$('.i-checks').iCheck({
checkboxClass: 'icheckbox_square-green',
radioClass: 'iradio_square-green',
});
/*menu_add.aspx*/
$('.i-checks').iCheck({
checkboxClass: 'icheckbox_square-green',
radioClass: 'iradio_square-green',
});
3、在因UpdatePanel而导致JavaScript脚本失效的页面Page_Load方法的内容前面加入代码:
protected void Page_Load(object sender, EventArgs e)
{
//==*局部刷新,加载JavaScript脚本*==//
ScriptHelper.RegisterScriptBlock(this.Page, "$.getScript(\"/manage/js/scriptreference.js\");");
if (!IsPostBack)
{}
}