ASP.NET 4.0的七大新特性之"控件的ClientIDMode"
在早期的ASP.NET框架中,如果你放置一个控件在一个容器中,如GridView模板列、登录模板、其它,在运行时这些控件的ID将被替换由ASP.NET自身产生的随机唯一ID。
为开发者提供服务方访问控件的Page.FindControl("controlid")以及JavaScript中使用 的document.getElementById("controlid"),这是一个由来已久的问题。简单来说运行时生成的控件ID并不是可预见的。
但.NET开发者不久将会没有这样的困扰,但是。因为在ASP.NET 4.0中所有控件有一个属性ClientIDMode。这提供了良好的控制生成的ID的内容控制在运行时。
对ClientIDModes可用的类型有:
自动识别(AutoID) -这是相同的随机方式,因为它发生在使用ASP.NET的早期版本。
静态(Static) -控件的ID将不会改变在运行时。这是非常方便的设置如果被控制在网页上使用的容器或需要在客户端脚本访问。
可预测的(Predictable) 模式-静态模板像一个TextBox控件在GridView不会有用,因为GridView的行的重复。在这种情况下可预测的模式值是在方便的地方,开发者可以提供一个可预测ClientIDRowSuffix属性的主键的GridViewRow使用。可以预见,这将追加后缀,以独特的价值作为实际控制的ID。例如,如果实际控制TemplateColumn控件ID在是txtBox和ClientIDRowSuffix是GridViewRowIndex文本框的ID识别码,然后在运行时产生的row1将GridView1_txtBox_1上,为row2将GridView1_txtBox_2等。
继承(Inherit ) -这将继承父控件ClientIDMode值的。
在指定的页面级别上,你不必为每个控件提供ClientIDMode。
<%@ Master Language="C#" ClientIDMode="Predictable" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="MyWebApplication.SiteMaster" %>
Or it could also be provided at the application level using the web.config specification as shown below.
<system.web>
<pages clientIDMode="Predictable"></pages>
</system.web>
请注意,ClientIDMode在控制层将覆盖在页面指令和web.config上述设置中指定。
原文转自:http://www.systhinker.com/html/24/n-10324.html
相关文档:
Flex
与 Asp.Net 通过 Remoting 方式进行通讯
Flex 与 Asp.Net 通过 Remoting 方式进行通讯 (一)http://hi.baidu.com/tsengyuen/blog/item/644e98a3353f7287471064ef.html
Flex 与 Asp.Net 通过 Remoting 方式进行通讯 (二)http://hi.baidu.com/tsengyuen/blog/item/af02730d58d6d7266059f3e8.html
Flex 与 Asp.Net 通 ......
fileupload控件的用法
ASPX页面
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" t ......
在开发过程中,通过摸索查资料,收集了一些值得提出来的经验:
1、 相对于原来的for语句foreach具有更好的执行效率,foreach的平均花费时间只有for的30%。通过测试结果在for和foreach都可以使用的情况下,我们推荐使用效率更高的foreach。另外,用for写入数据时间大约是读取数据时间的10倍左右;
2、 在asp.net程序中, ......
using System.Security.Cryptography;
using System.IO;
using System.text;
/// <summary>
/// 加密
/// </summary>
/// <param name="str"> ......