iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >ASP.NET 4.0新特性的改进有哪些
  • 293
分享到

ASP.NET 4.0新特性的改进有哪些

2023-06-17 22:06:57 293人浏览 八月长安
摘要

这期内容当中小编将会给大家带来有关asp.net 4.0新特性的改进有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。ASP.net 4.0新特性中,关于ClientID的改进可以在执行嵌套空间时,控制

这期内容当中小编将会给大家带来有关asp.net 4.0新特性的改进有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

ASP.net 4.0新特性中,关于ClientID的改进可以在执行嵌套空间时,控制生成的html的ID的情况。以往进行这样的操作时,很容易出现错误,很难控制。

一 :简介

我们知道因为在原来的ASP.NET应用程序中使用服务端控件在生成ClientID的时,是很难控制的,特别是在嵌套的控件的时候,比如在多个嵌套Repeater中要控制某一个控件生成的html的ID属性,是很困难的,

在ASP.NET 4.0新特性中提供ClientMode,来控制生成的Html的ID的情况。

二 :原来的问题和解决方法

原来要获得html的ID,就要使用这样的方式:

<%=lblName.ClientID%>   var lblName = document.getElementById("<%=lblName.ClientID%>");             alert(lblName.innerText);

如果是在嵌套的控件中,就需要使用并接字符串来组合成一下客户端ID,

for (var i = 1; i <= 9; i++) {                 var Element = document.getElementById("Repeater1_ctl0" + i + "_lblName");                 alert(Element.innerText);            }

其实也可以通过重写控件的ID来,控制在客户端ID的生成。

三:ASP.NET 4.0 的解决方案

现在你会发现在ASP.NET 4.0中会有一个ClientMode的新属性:

他有四个值分别是:

Legacy:就是使用传统的模式,设置ClientIDMode是无效的。

Inherit:这是继承在控件层次结构中,父级点控件的ClientIDMode设置。也就是说如果你父控件设置ClientIDMode=“Static”,那这里的子控件的ClientIDMode也是"Static"

Static :生成指定的ID,但你要注意页面上的ClientID的唯一性。

Predictable:这个设置值的使用,需要确保ID的是唯一性,这里分整个页面的唯一性和在控件中的唯一性两种情况,第二中就是说你可以在页面设置一个ID为Name,你还是可以在你的Repeater的Item项目模板中设置ID为Name的Label子控件,而不会报错,因为他会自动生成新的控件ID。具体下面详细解说:

(1)使用Legacy 值:

<asp :TextBox ID ="txtName" runat ="server" Width ="70%" ClientIDMode ="Legacy" /> <input id="ctl00_txtName" style="width: 65%" name="ctl00$txtName" />

上面是和传统生成 Client ID的情况的一样。

(2)Static 模式

ClientIDMode的值设置为Static,这里要注意就是在repeater等数据绑定控件中使用子控件时,他们生成的子控件ID都是一样的,所以控制不好控制。

<tr> <td> <span id="lblName"> td> <tr> <tr> <td> <span id="lblName"> td> <tr> <tr> <td> <span id="lblName"> td> <tr>


所以可以看出它比较适合单个控件的使用。

如果在repeater设置为Static,而将后面的控件设为Predictable

<asp:sqlDataSource ID="SqlDataSource1" runat="server"              ConnectionString=""              SelectCommand="SELECT * FROM [Products]">asp:SqlDataSource>        <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1" ClientIDMode="Static">         <HeaderTemplate >         <table>         <tr>            <td>sfsdtd>         tr>         HeaderTemplate>         <ItemTemplate >           <tr><td>            <asp:Label   ID="lblID"  Text='' runat="server" ClientIDMode="Predictable">asp:Label>            td>tr>            <tr><td>            <asp:Label   ID="lblName"  Text='' runat="server" ClientIDMode="Predictable">asp:Label>            td>tr>            <tr><td>            <asp:Label   ID="lblReorderLevel"  Text='' runat="server" ClientIDMode="Predictable">asp:Label>            td>tr>         ItemTemplate>         <FooterTemplate>         FooterTemplate>            asp:Repeater>

结果为:

<span id="lblName_0"> <span id="lblName_1"> <span id="lblName_2"> <span id="lblName_3">

看来还比较灵活,

现在我们再在repeater外面方一个Label,ID为lblName_0的,ClientIDMode为Static或Predictable;

<asp:Label   ID="lblName_0"  Text="worksguo" runat="server" ClientIDMode=“Static或Predictable”>asp:Label>         <asp:SqlDataSource ID="SqlDataSource1" runat="server"               ConnectionString=""               SelectCommand="SELECT * FROM [Products]">asp:SqlDataSource>         <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1" ClientIDMode="Static">          <HeaderTemplate >          <table>          <tr>             <td>sfsdtd>          tr>          HeaderTemplate>          <ItemTemplate >            <tr><td>             <asp:Label   ID="lblID"  Text='' runat="server" ClientIDMode="Predictable">asp:Label>             td>tr>             <tr><td>             <asp:Label   ID="lblName"  Text='' runat="server" ClientIDMode="Predictable">asp:Label>             td>tr>             <tr><td>             <asp:Label   ID="lblReorderLevel"  Text='' runat="server" ClientIDMode="Predictable">asp:Label>             td>tr>          ItemTemplate>          <FooterTemplate>          FooterTemplate>             asp:Repeater>

结果在页面上就会出现

<span id="lblName_0"> <span id="lblName_0">

但并没有报错。

如果在再外面加一个Label,ID为lblName_0的,ClientIDMode为Static或Predictable,就会出现报错。

<asp:Label   ID="lblName_0"  Text="worksguo" runat="server">asp:Label>    <asp:Label   ID="lblName_0"  Text="worksguo" runat="server">asp:Label>         <asp:SqlDataSource ID="SqlDataSource1" runat="server"               ConnectionString=""               SelectCommand="SELECT * FROM [Products]">asp:SqlDataSource>         <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1" ClientIDMode="Static">          <HeaderTemplate >          <table>          <tr>             <td>sfsdtd>          tr>          HeaderTemplate>          <ItemTemplate >            <tr><td>             <asp:Label   ID="lblID"  Text='' runat="server" ClientIDMode="Predictable">asp:Label>             td>tr>             <tr><td>             <asp:Label   ID="lblName"  Text='' runat="server" ClientIDMode="Predictable">asp:Label>             td>tr>             <tr><td>             <asp:Label   ID="lblReorderLevel"  Text='' runat="server" ClientIDMode="Predictable">asp:Label>             td>tr>          ItemTemplate>          <FooterTemplate>          FooterTemplate>             asp:Repeater>

这个时候就会报错,有相同的ClientID。

所以ClientIDMode使用是有层次范围的,在页面上相同层次级别上不能有相同ID,如果在Repeater中新的层次中就可以与上一层次有相同ID.

(3)Predictable Mode

在GridView数据绑定控件中还有一个新的属性ClientIDRowSuffix,它是在GridView中设置在使用Predictable模式,生成新的ID的后缀。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"               DataKeyNames="ProductName" DataSourceID="SqlDataSource1" ClientIDMode="Predictable" ClientIDRowSuffix="ProductName" >             <Columns>                 <asp:TemplateField HeaderText="ProductName" >                     <ItemTemplate>                         <asp:Label   ID="lblID"  Text='' runat="server" >asp:Label>                                              ItemTemplate>                 asp:TemplateField>                  Columns>         asp:GridView>


生成的结果为:

<tr>             <th scope="col">ProductNameth>         tr><tr>             <td>                         <span id="GridView1_lblID_Chai">Chaispan>                                              td>         tr><tr>             <td>                         <span id="GridView1_lblID_Chang">Changspan>                                              td>         tr><tr>             <td>                         <span id="GridView1_lblID_Aniseed Syrup">Aniseed Syrupspan>                                              td>         tr><tr>             <td>                         <span id="GridView1_lblID_Chef Anton's Cajun Seasoning">Chef Anton's Cajun Seasoningspan>                                              td>         tr><tr>

你可以看见我们将ProductName作为后缀名。

新特性总结

现在有这个ClientMode就能很好的控制生成到客户端的ID,这样可以更好的动态控制页面上标签。

上述就是小编为大家分享的ASP.NET 4.0新特性的改进有哪些了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网精选频道。

--结束END--

本文标题: ASP.NET 4.0新特性的改进有哪些

本文链接: https://www.lsjlt.com/news/293809.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ASP.NET 4.0新特性的改进有哪些
    这期内容当中小编将会给大家带来有关ASP.NET 4.0新特性的改进有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。ASP.NET 4.0新特性中,关于ClientID的改进可以在执行嵌套空间时,控制...
    99+
    2023-06-17
  • Java 8的新特性以及改进有哪些
    Java 8的新特性以及改进有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。这篇文章是对Java 8中即将到来的改进做一个面向开发者的综合性的总结,JDK的这一特性将会在2...
    99+
    2023-06-17
  • Flex2.0.1新特性和所做改进有哪些
    这篇文章主要介绍了Flex2.0.1新特性和所做改进有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Flex2.0.1介绍我们在2006年6月份发布了AdobeFlex2...
    99+
    2023-06-17
  • .NET 4.0中异常处理方面的新特性有哪些
    这篇文章将为大家详细讲解有关.NET 4.0中异常处理方面的新特性有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。作为程序员,我想很多人应该都有过跟异常打交道的经历。而且相信也有很多人也都写过catc...
    99+
    2023-06-17
  • Hive3.x相对于Hive2.x有哪些新特性和改进
    Vectorized query execution: Hive 3.x introduces vectorized query...
    99+
    2024-04-02
  • .NET 4.0的ICustomQueryInterface新特性是什么
    本篇文章给大家分享的是有关.NET 4.0的ICustomQueryInterface新特性是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在.NET Framework ...
    99+
    2023-06-18
  • PHP 6新增多项特性及重要改进有哪些
    这期内容当中小编将会给大家带来有关PHP 6新增多项特性及重要改进有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。PHP下一个备受关注的6.0版本,已经进入snaps...
    99+
    2024-04-02
  • .NET 4.0的新特性是什么
    这篇文章主要介绍了.NET 4.0的新特性是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇.NET 4.0的新特性是什么文章都会有所收获,下面我们一起来看看吧。.NET Framework是支持生成和运行下...
    99+
    2023-06-17
  • Ant Design 4.0有哪些更新
    这篇文章主要为大家展示了“Ant Design 4.0有哪些更新”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Ant Design 4.0有哪些更新”这篇文章吧...
    99+
    2024-04-02
  • Laravel10的新特性有哪些
    今天小编给大家分享一下Laravel10的新特性有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Laravel 10现已...
    99+
    2023-07-05
  • es6的新特性有哪些
    es6的新特性有:1、块级作用域,可以在块级作用域中声明变量;2、箭头函数,一种新的函数声明方式;3、解构赋值,一种从数组或对象中提取值并赋值给变量的语;4、默认参数,允许在函数定义时为参数提供默认值;5、扩展运算符,可以将数组或对象展开,...
    99+
    2023-08-04
  • html5的新特性有哪些
    这篇文章主要介绍html5的新特性有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!新增的元素html5新增了一些语义化更好的标签元素。结构元素article元素,表示页面中的一块...
    99+
    2024-04-02
  • HTLM的新特性有哪些
    本篇内容主要讲解“HTLM的新特性有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTLM的新特性有哪些”吧!1.Flash被HTML5取代Flash绘图 ...
    99+
    2024-04-02
  • Go1.16的新特性有哪些
    本篇内容介绍了“Go1.16的新特性有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前几天 Go 官方正式发布了 1.16 版本。从这个...
    99+
    2023-06-15
  • Python3.9的新特性有哪些
    这篇文章主要讲解了“Python3.9的新特性有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python3.9的新特性有哪些”吧!1. 词典联合运算符这是我最喜欢的功能之一,语法非常优...
    99+
    2023-06-16
  • Kubernetes1.4的新特性有哪些
    这篇文章主要介绍“Kubernetes1.4的新特性有哪些”,在日常操作中,相信很多人在Kubernetes1.4的新特性有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Kubernetes1.4的新特性...
    99+
    2023-06-28
  • spring4的新特性有哪些
    这篇文章给大家介绍spring4的新特性有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。从Spring4开始,Spring以Servlet3为进行开发,如果用Spring MVC 测试框架的话需要指定Servlet...
    99+
    2023-05-31
    spring
  • Java15的新特性有哪些
    本篇内容主要讲解“Java15的新特性有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java15的新特性有哪些”吧!新特性JDK 15 新特性一览表:IDJEPFeature1339Edw...
    99+
    2023-06-16
  • Node18的新特性有哪些
    本篇内容介绍了“Node18的新特性有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 原生支持fe...
    99+
    2024-04-02
  • Silverlight 4.0新增功能有哪些
    小编给大家分享一下Silverlight 4.0新增功能有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Silverlight 4.0看来已经跃跃欲试了,尽管Silverlight3刚刚发布。从微软正式公布的新功能看,...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作