动态注册JS脚本时,来自ClientScriptManager类的,常用的四种方法有:
(一)、RegisterClientScriptBlock方法
将js区块添加到页面顶端,你可以以字符串形式创建这些js代码,然后将它传递给添加网页的方法。相对应的,判断是否已注册该脚本的方法为IsClientScriptBlockRegistered()
前台相关代码:
代码
<body>
<form id="form1" runat="server">
<div style="text-align: center;">
<div style=" 600px; padding: 20px 50px 20px 50px;">
<table style=" 100%;" class="Tb_Blank">
<tr>
<td>
ClientScriptManager类常用的四种方法
</td>
</tr>
<tr>
<td>
<table style=" 100%;" class="Tb_Common">
<tr>
<td style=" 35%;">
RegisterClientScriptBlock方法
</td>
<td style=" 65%;">
<asp:Button ID="btnTest" runat="server" Text="检测" OnClick="btnTest_Click" />
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</div>
</form>
</body>
<form id="form1" runat="server">
<div style="text-align: center;">
<div style=" 600px; padding: 20px 50px 20px 50px;">
<table style=" 100%;" class="Tb_Blank">
<tr>
<td>
ClientScriptManager类常用的四种方法
</td>
</tr>
<tr>
<td>
<table style=" 100%;" class="Tb_Common">
<tr>
<td style=" 35%;">
RegisterClientScriptBlock方法
</td>
<td style=" 65%;">
<asp:Button ID="btnTest" runat="server" Text="检测" OnClick="btnTest_Click" />
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</div>
</form>
</body>
后台相关代码:
代码
#region JS注册方法检测
private void TestScriptRegister()
{
//动态创建js文件
string info = @"function showDialog(){alert('测试RegisterClientScriptBlock');}";
//判断myName是否已经被注册
if (!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), "myName"))
{
//动态注册js
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "myName", info, true);
}
this.btnBlock.Attributes["OnClick"] = "showDialog()";
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TestScriptRegister();
}
}
private void TestScriptRegister()
{
//动态创建js文件
string info = @"function showDialog(){alert('测试RegisterClientScriptBlock');}";
//判断myName是否已经被注册
if (!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), "myName"))
{
//动态注册js
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "myName", info, true);
}
this.btnBlock.Attributes["OnClick"] = "showDialog()";
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TestScriptRegister();
}
}
查看页面源代码为:
代码
<body>
<form name="form1" method="post" action="ForLinKeNan.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTQ2OTkzNDMyMQ9kFgICAw9kFgICAQ8PZBYCHgdPbkNsaWNrBQxzaG93RGlhbG9nKClkZA0HIswlstW+qXADqAH+bdo4hzp+" />
</div>
<script type="text/javascript">
//<![CDATA[
function showDialog(){alert('测试RegisterClientScriptBlock');}//]]>
</script>
<div>
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAgLJ9K2vDwK14deQBeSN2qREk5Pf28+KMun3E4nhjvXE" />
</div>
<div style="text-align: center;">
<div style=" 600px; padding: 20px 50px 20px 50px;">
<table style=" 100%;" class="Tb_Blank">
<tr>
<td>
ClientScriptManager类常用的四种方法
</td>
</tr>
<tr>
<td>
<table style=" 100%;" class="Tb_Common">
<tr>
<td style=" 35%;">
RegisterClientScriptBlock方法
</td>
<td style=" 65%;">
<input type="submit" name="btnBlock" value="检测" onclick="showDialog();" id="btnTest" />
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</div>
</form>
</body>
<form name="form1" method="post" action="ForLinKeNan.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTQ2OTkzNDMyMQ9kFgICAw9kFgICAQ8PZBYCHgdPbkNsaWNrBQxzaG93RGlhbG9nKClkZA0HIswlstW+qXADqAH+bdo4hzp+" />
</div>
<script type="text/javascript">
//<![CDATA[
function showDialog(){alert('测试RegisterClientScriptBlock');}//]]>
</script>
<div>
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAgLJ9K2vDwK14deQBeSN2qREk5Pf28+KMun3E4nhjvXE" />
</div>
<div style="text-align: center;">
<div style=" 600px; padding: 20px 50px 20px 50px;">
<table style=" 100%;" class="Tb_Blank">
<tr>
<td>
ClientScriptManager类常用的四种方法
</td>
</tr>
<tr>
<td>
<table style=" 100%;" class="Tb_Common">
<tr>
<td style=" 35%;">
RegisterClientScriptBlock方法
</td>
<td style=" 65%;">
<input type="submit" name="btnBlock" value="检测" onclick="showDialog();" id="btnTest" />
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</div>
</form>
</body>
附注:使用RegisterClientScriptBlock,其JS函数,放置在页面的顶部,一般位于form后
(二)、RegisterStartupScript方法
将js区块添加当网页完成加载,但是在引发网页的onload事件之前,就会执行。相对应的,判断是否已注册该脚本的方法为IsStartupScriptRegistered。
该方法的使用,可类似上述的RegisterClientScriptBlock。唯一不同的是,相应的函数在页面底部,位于form结束标志前。
(三)、RegisterClientScriptInclude方法
通过外部添加引用js脚本。相对应的,判断是否已注册该脚本的方法为IsClientScriptIncludeRegistered()
参照(一),前台相关代码:
<asp:Button ID="btnInclude" runat="server" Text="检测" OnClientClick="return showInclude();" />
ClientScriptManager.js函数代码为:
function showInclude()
{
alert('检测RegisterClientScriptInclude方法');
}
{
alert('检测RegisterClientScriptInclude方法');
}
后台相关代码为:
代码
#region 检测RegisterClientScriptInclude方法
if (!ClientScript.IsClientScriptIncludeRegistered(this.GetType(), "Include"))
{
//若没有被注册,则将ClientScriptManager.js动态注册,注意路径
Page.ClientScript.RegisterClientScriptInclude(Page.GetType(), "Include", Page.ResolveUrl("~/JS/ClientScriptManager.js"));
}
#endregion
if (!ClientScript.IsClientScriptIncludeRegistered(this.GetType(), "Include"))
{
//若没有被注册,则将ClientScriptManager.js动态注册,注意路径
Page.ClientScript.RegisterClientScriptInclude(Page.GetType(), "Include", Page.ResolveUrl("~/JS/ClientScriptManager.js"));
}
#endregion
(四)、RegisterOnSubmitStatement方法
添加执行以响应网页onsubmit事件的js。相对应的,判断是否已注册该脚本的方法为IsOnSubmitStatementRegistered
前台相关代码:
<asp:Button ID="btnStatement" runat="server" Text="检测" />
后台相关代码:
代码
#region 检测RegisterOnSubmitStatement方法
string infoSubmit = "return confirm('你确认删除?');";
if (!Page.ClientScript.IsOnSubmitStatementRegistered(this.GetType(), "Submit"))
{
Page.ClientScript.RegisterOnSubmitStatement(this.GetType(), "Submit", infoSubmit);
}
#endregion
string infoSubmit = "return confirm('你确认删除?');";
if (!Page.ClientScript.IsOnSubmitStatementRegistered(this.GetType(), "Submit"))
{
Page.ClientScript.RegisterOnSubmitStatement(this.GetType(), "Submit", infoSubmit);
}
#endregion