后台动态设置前台标签内容和属性

动态|后台|后台

和以前的asp不同,在asp.net中为了彻底的代码分离,我们一般不采用<%=%>嵌入标签中来设置一些属性和内容。
一般来说有2种情况:
(一)设置标签的内容,比如<title>这里</title>
(二)设置标签的属性,比如<body bgcolor=这里>
(三)动态加载一些script
先看一下(一)和(二):
前台
<title id="mytitle" runat="server"></title>
<body id="mybody" runat="server">
后台
protected HtmlGenericControl mytitle;
protected HtmlGenericControl mybody;
this.mytitle.InnerText="test";
this.mybody.Attributes["bgcolor"]="#cccccc";
这里说明3点:
(1)前台标签runat=server是必须的
(2)HtmlGenericControl的命名空间是System.Web.UI.HtmlControls
(3).InnerText和.InnerHtml是有区别的
比如:
前台
<span runat="server" id="myspan"></span>
后台
this.myspan.InnerText="<b>test</b>"
得到的结果是
<span id="myspan"><b>test</b></span>
把后台改为
this.myspan.InnerHtml="<b>test</b>"
得到的结果是
<span id="myspan"><b>test</b></span>
再来看看动态加载一些script
一般来说有三种情况
(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>

时间: 2024-11-05 20:36:25

后台动态设置前台标签内容和属性的相关文章

控件-.cs文件后台设置前台.aspx的元素属性

问题描述 .cs文件后台设置前台.aspx的元素属性 我现在后台那想通过判断登录用户的id来决定显示哪些控件,显示的将display设置为block.但是在后台怎么获取前台的元素,用后台是C#语言 解决方案 客户端还是服务器端控件?客户端增加一个runat="server"变为服务器端控件就可以使用xxx.Visible=true/false来设置显示隐藏.

Android 动态设置TextView的drawableLeft等属性

  首先,我们在开发过程中,会经常使用到android:drawableLeft="@drawable/ic_launcher"这些类似的属性:   关于这些属性的意思,无非是在你的textView文本的上下左右处添加一个图片.比如下面这么一段代码: <TextView android:id="@+id/text_drawable" android:layout_width="wrap_content" android:layout_hei

ajax-.net后台逐行动态输出html标签

问题描述 .net后台逐行动态输出html标签 本人打算做一个类似于软件安装时的动态效果,想让后台函数在运行过程中,不断的向前台写数据来表明当前软件的运行状态,但是总是所有后台代码运行完毕之后统一出现在前台,后来使用ajax方法,但还是实现不了,求高手帮忙! 前台JS代码 <script language="javascript" type="text/javascript"> function CompareInfo(InfoId) { jQuery.

mvc中动态给一个Model类的属性设置验证

原文:mvc中动态给一个Model类的属性设置验证 在mvc中有自带的验证机制,比如如果某个字段的类型是数字或者日期,那么用户在输入汉字或者英文字符时,那么编译器会自动验证并提示用户格式不正确,不过这样的验证毕竟功能有限,那么就需要我们自己进行定制验证. 假设有Model类:class Dinners{ private string Title;      private System.DateTime EventDate;      private string Description;   

动态设置form表单的action属性的值的简单方法_jquery

用jQuery时,可如下设置: form表单: <form name="myform" id="myform" action="ssss" method="post" onsubmit="getUrl();"> javascript方法: <script type="text/javascript"> function getUrl(){ $('form').at

Java通过反射机制动态设置对象属性值的方法_java

/** * MethodName: getReflection<br> * Description:解析respXML 在通过反射设置对象属性值 * User: liqijing * Date:2015-7-19下午12:42:55 * @param clzzName * @param respXML * @return * @throws ClassNotFoundException * @throws DocumentException * @throws IllegalArgumentE

jsf 自定义标签:开发JSF自定义标签id,var属性的设置技巧

在JSF里开发自定义标签时,ID属性值的设置跟一般的属性不一样:if(this.id!=null){component.setValueExpression("id", this.id);}  如果这样设置运行时会报java.lang.IllegalArgumentException异常,这是因为在UIComponent类的setValueExpression方里会 检测Expression的名字是"id"或"parent"时就会抛出java.l

ios动态设置lbl文字标签的高度

  本文给大家分享的是ios动态设置lbl文字标签的高度宽度的方法,一共给大家汇总了3种方法,小伙伴们根据自己的项目需求自由选择. 代码如下: txtlbl.font = [UIFont boldSystemFontOfSize:14.0f]; txtlbl.numberOfLines = 0; NSString *str = @" 阿方决定设立科技特网络离开电视剧分w额两个大陆高科技了了不见了日i倒计时离开我说老师肯德基弗兰克萨江东父老将费德勒说阿方决定设立科技特网络离开电视剧分w额两个大陆高

c#后台修改前台DOM的css属性示例代码

本文为大家详细介绍下如何使用c#修改前台DOM的css属性,具体示例如下,感兴趣的朋友可以参考下哈,希望对大家有所帮助   <div id = 'div1' runat="server">haha</div> ----------- 后台代码中这样调用 div1.Style["display"]="inline"; 注意,c#中要用双引号. using System.Web.UI.WebControls;得引入这个命名空间