在VS 2005中asp.net ScriptManager+UpdatePanel+服务器端的Button按钮。点击Button页面刷新了。用Response.Write(' hello world')是可以的。
在VS 2008中asp.net ScriptManager+UpdatePanel+服务器端的Button按钮。点击Button页面不刷新。 用Response.Write(' hello world')会报错。
改成ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "updateScript", "alert('保存成功');", true);
就可以了。。
这两者有什么区别吗??
谢谢各位老大呢!
在VS 2008中asp.net ScriptManager+UpdatePanel+服务器端的Button按钮。点击Button页面不刷新。 用Response.Write(' hello world')会报错。
改成ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "updateScript", "alert('保存成功');", true);
就可以了。。
这两者有什么区别吗??
谢谢各位老大呢!
解决方案 »
- ListBox控件边框问题
- 请教一个关于无刷新的问题
- 嵌套母板页找值的问题
- 请问在VS的VB代码文件中如何定义表格的位置
- 开新.net技术群,欢迎大家支持,号码7815962
- 怎样在DataGrid编辑模式中删除的时候弹出一个对话框是否删除?如果点否的话则不能删除。
- 文件上传到数据库,如何才能在提交未完成时取消上传??
- ###### 100分重新开帖!关于impersonation的问题! ######
- datagrid的this.style.background问题
- 查询条件任意组合如何实现?(sql)在线
- 请教下搜索功能代码的一些问题
- Repeater中如何获取Textbox 的值和对应的ID
摘抄如下:
一般来说有三种情况
(1)在前台放置<asp:Literal Runat="server"></asp:Literal>指定位置输出
(2)后台通过RegisterStartupScript和RegisterClientScriptBlock输出
(3)Response.Write输出
举例如下
(1)
前台
<asp:Literal ID="myLiteral" Runat="server"></asp:Literal>
后台
this.myLiteral.Text+="<script>alert('test');</script>";
查看源代码可以看到原来的
<asp:Literal ID="myLiteral" Runat="server"></asp:Literal>
位置变成了
<script>alert('test');</script>
(2)
为了更加清楚看到两个的区别,前台如下
<form id="Form1" method="post" runat="server">
<input type="hidden" value="test" id="myhiden">
</form>
后台如下
Page.RegisterStartupScript("","<script>alert('RegisterStartupScript:'+document.all.myhiden.value)</script>");
Page.RegisterClientScriptBlock("","<script>alert('RegisterClientScriptBlock:'+document.all.myhiden.value)</script>");
结果如下:只出现对话框显示RegisterStartupScript:test
查看源代码如下:
<form name="Form1" method="post" action="WebForm4.aspx" id="Form1">
<input type="hidden" name="__VIEWSTATE" value="dDwtNjU0MzcyMTk1Ozs+NmbLf6dWkF/Q/FLKKsdPPfhFXr0=" />
<script>alert('RegisterClientScriptBlock:'+document.all.myhiden.value)</script>
<input type="hidden" value="test" id="myhiden">
<script>alert('RegisterStartupScript:'+document.all.myhiden.value)</script>
</form>
两者区别不用多说了吧
(3)
我们再加一句Response.Write("test")
查看源代码发现test字样出现在最前面
test
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
用它来输出转向代码比较合适
<script>location.href='page.aspx'</script>
最后在提醒一下大家,有很多人在给一个控件加js代码的时候会这么写:
this.mybody.Attributes["onclick"]="<script>alert('test');</script>";
这么写是不对的
应该是
this.mybody.Attributes["onclick"]="alert('test');";
比如你在前台书写<a onclick=>的时候你会写<a onclick='<script>alert('test')<script>'>吗?
道理是一样的!
但是相反,有的人在
Page.RegisterStartupScript("","<script>alert('test');</script>");的时候不写里面的<script>也是不行的
(虽然名字叫Register...Script)
vs2005 asp.net ScriptManager+UpdatePanel+服务器端的Button按钮。点击Button页面刷新了
vs2008 asp.net ScriptManager+UpdatePanel+服务器端的Button按钮。点击Button页面不刷新
有什么区别呢?
请问是否VS2008之前的VS2005中 asp.net ScriptManager+UpdatePanel控件一点用处没有呢?