使用response.write造成css样式改变的解决方法


  这种情况最典型的原因是单击按钮事件里有类似Response.Write这样的语句,由于ASP.NET 2.0默认采用http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd文档类型定义,它就要求在<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">的前面不能有任何输出。这种问题的解决方法是采用ClientScriptManager输出,或者采用Literal控件输出内容。

  有些人不知道使用RegisterStartupScript输出文本(非脚本内容),以为它只能输出<script>这些脚本内容,而不能输出html代码,因此当要输出html代码时,只能使用Response.Write的方法。这其实是对RegisterStartupScript没有正确理解造成的误区。看一下RegisterStartupScript输出的内容,其实就是一段内容,为什么不能写使用它输出html呢(尽管这个功能不是很常用)!下面就是使用RegisterStartupScript输出非脚本的例子: <%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
  protected void Button1_Click( object sender, EventArgs e )
  {

 //response.write("<h1>测试</h1>");
    Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<h1>测试</h1>");
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
</head>
<body>
  <form id="form1" runat="server">
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="单击测试" />
  </form>
</body>
</html>


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/net_lover/archive/2007/09/11/1780289.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值