嗯。。。。。一个小小的需要注意的地方

在.net开发中,我们经常使用runat=server,来定义一些控件,来通过后台代码进行这些控件的管理,比如 <asp:Panel>啦,<asp:MultiView>啦,<asp:Repeater>啦,其他内容我们就不再管理了,但是,这里要说个但是:但是,尽管其他所有的html标签,我们都没有使用runat=server,在.net后台代码中也可以获取到,并可以进行管理,例如一个c#的例子

首先是一个页面aspx文件内容

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="xxxx.aspx.cs" Inherits="xx.xxx.xxxx" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"><title>这个title默认是runat=server的,即便不加,他也可以获取到,只要head定义了runat=server</title><link rel="stylesheet" href="/css/product.css" />
</head>
<body><div id="nav"><asp:Repeater ID="rp_nav" runat="server"><ItemTemplate><li><a href="<%#Eval("导航链接")%>"><%#Eval("导航文字")%></a></li></ItemTemplate></asp:Repeater></div>
</body>
</html>

那么,我们在后台的Page_Load里增加一行代码,我们看看结果

ControlCollection cc = this.Page.Controls;

我们可以发现 cc的子项有5项,来看看细节

cc[0]的内容

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">

cc[1]的内容

<head runat="server"><title>这个title默认是runat=server的,即便不加,他也可以获取到,只要head定义了runat=server</title><link rel="stylesheet" href="/css/product.css" />
</head>

cc[2]的内容

<body><div id="nav">

cc[3]的内容

     <asp:Repeater ID="rp_nav" runat="server"><ItemTemplate><li><a href="<%#Eval("导航链接")%>"><%#Eval("导航文字")%></a></li></ItemTemplate></asp:Repeater>

cc[4]的内容

 </div>
</body>
</html>

嗯,由于可以通过Controls获取所有内容,所以我们可以很方便的在后台操作所有页面上的内容,哪怕他没有runat=server,只要找对了对应的控件即可

当然,这里需要注意的问题是:System.Web.UI.HtmlControls和System.Web.UI.WebControls对象获取内容的方法不一样,HtmlControls多数是通过InnerHtml,而WebControls多数是通过Text属性,嗯,细节自己处理即可

然后通过反射,获取到InnerHtml或Text属性,然后通过反射赋值,就可以修改页面内容了

然后。。。。。然后。。。。我今天在已经实现了页面修改的aspx里,懒癌发作了。。。。不想用WebControls在后台判断,直接写了一段<%if (true){%><%}%>,然后,发现出问题了,我经过后台处理的内容全部都没有加载出来!

然后,还是这个测试页面,不同的地方只在有了一个页面的后台代码<%if (true){%><%}%>,灾难发生了,同样用 ControlCollection cc = this.Page.Controls; 发现,这次只有两个子项了,一个是HtmlHead,另一个则是我们定义的Repeater,而这两个对象都具有runat=server设置

原来。。。。。在aspx里写代码,会造成页面无法预编译,所以就无法在后台获取到所有内容了。。。。引以为戒啊

.net 中,runat=server和页面运行后台指令的冲突现象相关推荐

  1. asp.net中runat=server的含义

    aspx运行时会被编译,其中没有runat server属性的html标签会被直接写入response,有runat server属性的html标签会转换成对应的HtmlControl子类加入 到页面 ...

  2. Form中runat=server属性的意义

    运行编译aspx文件时,无runat server属性的标签直接写入Response:有runat server属性的标签,将被转换为HtmlContrl控件加入到ASP.NET自带的控件集合中. 用 ...

  3. Linux中nohup不挂断运行命令

    nohup就是不挂起的意思( n ohang up) 该命令的一般形式为:nohup command & 语法:nohup Command [ Arg - ] [ & ] 描述:noh ...

  4. ASP.NET中aspx页面runat=server的本质(Essensial of runat=”server” in ASP.NET)

    今天同事问我一个"神奇"的问题,另一个同事"神奇"地找出了问题但无法解释,归咎于一种"习惯"或者"下次注意".现在我把问 ...

  5. ASP.NET中使用script runat=server

    ASP.NET中使用<script runat="server"> 标签: asp.netserver服务器objectasp 2012-04-11 09:46 475 ...

  6. .net GridView中 A标签runat=server问题

    在前台页面中,对A标签加上runat="server",会导致报"服务器标记的格式不正确"的错误, 换种思路,A标签在前台不加链接,如: <a id=&q ...

  7. asp.net中的runat=server 属性

    转载于:http://blog.163.com/fighter_lujie/blog/static/128489580201105101938932/ aspx运行时会被编译,其中没有runat se ...

  8. ASP.NET中使用多个runat=server form

    作者:未知 ASP.NET 在同一个页面不支持多个 runat=server forms,要解决这个问题,可以把每个 form 放在一个单独的 panel 控件中,这样用户就可以简单地通过单选按钮在不 ...

  9. sql 缓冲池_运行中SQL Server缓冲池

    sql 缓冲池 SQL Server retrieves data from two areas; memory and disk. As disk operations are more expen ...

最新文章

  1. 嫌Terminal终端太单调?快收下这几个有趣的改造工具!
  2. Python Multiprocessing with PyCUDA
  3. 关于数据中心的选址大全
  4. 从零开始学python人工智能课程_从零开始学人工智能(12)--Python · 决策树(零)· 简介...
  5. 如何将FPGA资源平民化?阿里工程师有了新突破
  6. mysql备份还原(视图、存储过程)
  7. Ruby Variable Scope 简单讲解
  8. layuimini 图标颜色便捷指定
  9. python哪几种开源框架成为大主流【菜鸟必看】
  10. C语言课后习题(34)
  11. java创建一个图形类getv_java建立类和对象分糖果
  12. Handler sendMessage 与 obtainMessage (sendToTarget)比较
  13. autocad型源代码_AutoCAD文件格式详解
  14. php 线性回归算法,线性回归方程计算器
  15. 计算机与机械制图课题研究,考核机械制图论文,关于“机械制图CAD”课程考试改革相关参考文献资料-免费论文范文...
  16. [混迹IT职场系列]一、转正的那些事儿
  17. HRBU_20211112训练
  18. C++string中的insert()插入函数
  19. 第73节:Java中的HTTPServletReauest和HTTPServletResponse
  20. 社交网站需要多大的服务器空间,社交app选多大云服务器

热门文章

  1. PIL之ImageFilter下的基本操作
  2. Aruba无线网络广播和组播泛洪控制
  3. 如何瓜分会缩水的蛋糕?
  4. GIS开发:nginx发布常用数据
  5. 【经典卷积神经网络CNN模型 之 VGG16Net】模型实验,强烈建议使用GPU来跑,经试验,若使用CPU,普通PC理论上需要超过100小时
  6. 新手也能快速上手的MEGAN模型复现
  7. Vue3图片打点自定义标记颜色形状(完整教程可直接复制项目)
  8. 数据结构教程(第四版)P85~87//队列的链式存储结构
  9. 汽车4s店汽车销售企业网站源码 织梦dedecms模板
  10. 如何裁剪音频文件 Audio Editor Tool(WavePad Sound Editor)