黑马程序员技术交流社区

标题: 在后台程序里<label> 标签为什么访问不到? [打印本页]

作者: 杨占伟    时间: 2012-12-4 11:24
标题: 在后台程序里<label> 标签为什么访问不到?
本帖最后由 杨占伟 于 2012-12-4 23:05 编辑

页面上定义了两个label标签: <label id = "lblOnUser"></label>    <label id = "lblAllUser"></label>
后台代码如下:
     protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            lblOnUser.Text = Application["OnUser"].ToString();    //为无法访问<label>
            lblAllUser.Text = Application["AllUser"].ToString();
        }
    }
为什么访问不到这两个标签,该怎么访问呢?

作者: 王继光    时间: 2012-12-4 11:27
要在后台访问前台的标签, 必须给控件加上属性  runat=“server”
作者: 杨占伟    时间: 2012-12-4 12:02
加了runat = "server" 运行提示错误如下:

mypicture23.JPG (26.34 KB, 下载次数: 88)

mypicture23.JPG

作者: 王继光    时间: 2012-12-4 12:47
label在后台没有 Text属性, 是 InnerText

01.jpg (5.39 KB, 下载次数: 70)

前台

前台

02.jpg (27.7 KB, 下载次数: 73)

后台

后台

作者: 杨占伟    时间: 2012-12-4 19:06
王继光 发表于 2012-12-4 12:47
label在后台没有 Text属性, 是 InnerText

非常感谢~~~
作者: 刘亚龙    时间: 2012-12-6 14:55
普通html标签在后台处理时是当做普通字符串来处理的,并没有对它进行编译,必须加runat="server"属性才能在后台访问到。
加runat="server"属性的html标签在后台访问时,它的属性的名字跟在前台时的属性名相同。
比如前台页面有一个<input id="htmlBtn" type="button" runat="server" />,要设置它显示的文字是在后台htmlBtn.Value=“”来设置的。而不是像高度封装后的asp.net控件,通过aspBtn.text=“”来设置。
作者: 汪磊    时间: 2012-12-10 12:12
关于这一点来说,你必须懂得一点,什么是服务器控件, 一般我们在VS中工具箱拖出来的都是服务器控件, 他们有一个共同的特点就是有个 runat="server"属性,  基本上所有的标签都可以加上这个标签成为服务器控件, 这样后台就可以操作了
label标签编译过后 在浏览器解释的是一个span标签  所以没有Text属性,  用 InnerText设置, 例如<span>abc</span>,这个span标签的 InnerText就是abc




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2