ASP.NET页面的数据绑定

合集下载

网页制作(ASP)复习题

网页制作(ASP)复习题

期末复习题一、填空题1 .NET Framework主要包括__________ 和__________。

答案:公共语言运行库CLR ,类库(2)网站在编译时,首先将语言代码编译成__________。

答案:微软中间语言MSIL3 一台IIS Web服务器IP地址为210.78.60.19,网站端口号为8000,则要访问虚拟目录xxxy中default.aspx的URL为___________________________________________。

答案:http://210.78.60.1 9:8000/xxxy/default.aspx3 利用XHTML建立一个链接到jxgz@邮箱的元素是__________答案:<a href="mailto:jxgz@>…</a>4 存放Web窗体页C#代码的模型有__________ 和__________。

答案:单文件页模型,代码隐藏页模型5 单文件页模型中,C#代码必须包含于__________ 之间。

答案:<script>...</script>6 外部样式表通过__________ 元素链接到网页。

答案:<link>7 C#使用的类库就是__________提供的类库。

答案:.NET Framework8 要在一个类中包含System.Data命名空间的语句是__________。

答案:using System.Data9 至少会执行一次循环的循环语句是__________。

答案:do-while语句10 较适用于一已知循环次数的循环语句是__________。

答案:for语句11 在TextBox控件中输入内容并当焦点离开TextBox控件时能触发TextChanged 事件,应设置属性__________ 。

答案:AutoPostBack="True"12 判断页面而是否第一次载入可通过属性__________ 实现。

ASP.NET页面的数据绑定

ASP.NET页面的数据绑定

引入了一种新的声明语法<%# %>。

该语法是在 .aspx 页中使用数据绑定的基础。

所有数据绑定表达式都必须包含在这些字符中。

A.单值绑定<% # %>公有或受保护的变量<%# strName %>方法结果:<%# getName()%>表达式:<%# 1+ 3*20 %> <%# “tong” + “qing” %><%# Request.Browser.Browser%>集合:<asp:ListBox id="List1" datasource='<%# myArray %>' runat="server">注:必须有父控件调用DataBind()方法,如Page.DataBind() 与Control.DataBind()调用Page.DataBind 方法后,所有数据源都将绑定到它们的服务器控件。

在显式调用Web 服务器控件的DataBind 方法或在调用页面级的Page.DataBind 方法之前,不会有任何数据呈现给控件。

通常,可以从Page_Load 事件调用Page.DataBind(或DataBind)。

B.重复值绑定这些控件可以将其DataSource 属性绑定到支持IEnumerable、ICollection 或IListSource 接口的任一集合。

1、数据绑定列表控件DropDownList控件列表控件都公开DataSource 和DataMember 属性,这些属性用于绑定到集合。

2、Repeater 控件Repeater 控件是模板化的数据绑定列表。

Repeater 控件是“无外观的”;即,它不具有任何内置布局或样式。

因此,您必须在控件的模板中明确声明所有HTML 布局标记、格式标记和样式标记。

3、DataList 控件DataList 类是一个多功能的、模板化的数据绑定列表。

详解ASP.NET数据绑定操作中Repeater控件的用法

详解ASP.NET数据绑定操作中Repeater控件的用法

详解数据绑定操作中Repeater控件的⽤法⼀、绑定控件之Repeater.NET封装了多种数据绑定控件,诸如GridView、DataList等但该篇⽂章将会从Repeater⼊⼿,因为Repeater只提供了基本的数据绑定模板,没有内置其它分页等功能,所以它是最原始的数据绑定控件,只要能够熟练运⽤Repeater控件其它的绑定控件也就很简单了。

1、Repeater简介Repeater 控件是基本模板化数据列表。

它不像GridView控件⼀样能够可视化的设计格式或样式,因此开发时在控件模板中必须显式声明所有格式、格式和样式标记。

另外Repeater控件没有内置选择、排序、编辑、分页等功能,它只提供了基本的数据绑定,但是它为开发⼈员提供了ItemCommand 事件,该事件⽀持在控件中收发命令。

想要绑定数据,模板是必不可少的,Repeater控件同样⽀持数据模板,⽽且还可以在模板中添加想要的标签,它主要⽤法如下图:Note:每个 Repeater 控件必须定义 ItemTemplate。

⼆、控件使⽤技巧上⽂讲解了Repeater基本的使⽤⽅法及它的⼀些基本特性,接下来做⼏个经典的⽰例来运⽤Repeater控件。

1、数据绑定之删除、编辑该⽰例将会使⽤的前台和后台结合来实现显⽰数据,并能够编辑和删除数据。

删除页⾯:编辑页⾯:前台代码:在单击编辑按钮后将会进⼊编辑页⾯,页⾯是由两个Panel控件来控制,通过传递ID号的⽅式判断显⽰的是编辑页⾯还是删除页⾯,另外前台代码通过设置控件的CommandArgument属性来传递后台所需要判断的id号。

<body><form id="form1" runat="server"><div><asp:Repeater ID="userRepeat" runat="server" OnItemCommand="userRepeat_ItemCommand" OnItemDataBound="userRepeat_ItemDataBound"> <HeaderTemplate><table border="1" style="width:1000px;text-align:center;border-collapse:collapse;"><thead style="background-color:red;"><tr><th>ID</th><th>内容</th><th>操作</th></tr></thead></HeaderTemplate><ItemTemplate><asp:Panel ID="plItem" runat="server"><tr><td><asp:Label runat="server" ID="lblID" Text='<%#Eval("id") %>'></asp:Label></td><td><%#Eval("name") %></td><td><asp:LinkButton ID="lbtEdit" CommandName="Edit" CommandArgument='<%#Eval("id") %>' runat="server">编辑</asp:LinkButton><asp:LinkButton ID="lbtDelete" CommandName="Delete" CommandArgument='<%#Eval("id") %>' runat="server">删除</asp:LinkButton></td></tr></asp:Panel><asp:Panel ID="plEdit" runat="server"><tr><td><asp:Label runat="server" ID="Label1" Text='<%#Eval("id") %>'></asp:Label></td><td><asp:TextBox ID="txtName" runat="server" Text='<%#Eval("name") %>'></asp:TextBox></td><td><asp:LinkButton ID="lbtCancel" CommandName="Cancel" CommandArgument='<%#Eval("id") %>' runat="server">取消</asp:LinkButton> <asp:LinkButton ID="lbtUpdate" CommandName="Update" CommandArgument='<%#Eval("id") %>' runat="server">更新</asp:LinkButton> </td></tr></asp:Panel></ItemTemplate><FooterTemplate></table></FooterTemplate></asp:Repeater></div></form></body>后台代码:在后台代码中很重要的两个事件是ItemCommand和ItemDataBound,其中ItemCommand负责接收前台传进来的按钮命令,根据命令的参数来设置后台传递的id,并在ItemDataBound中来验证id判断切换显⽰Panel。

ASPNET

ASPNET

面试题1.如何处理几十万条并发数据?答:1.用存储过程能分页就分页2.第一次尽量过滤掉所有无用的数据3.多线程Thread4.ajax异步处理5.提高硬件,可以使用服务器集群。

6.缓存技术(硬件和程序两方面),数据不能立即写到数据库,先写内存,过一段时间后再批量写数据库.2.Session有什么重大BUG,微软提出了什么方法加以解决?答:是iis中由于有进程回收机制,系统繁忙的话Session会丢失。

解决方法:可以用Sate server或SQL Server数据库的方式存储Session,不过这种方式比较慢,而且无法捕获Session的END事件.中的身份验证有那些?你当前项目采用什么方式验证请解释答:1)Windows 身份验证提供程序:提供有关如何将 Windows 身份验证与 Microsoft Internet 信息服务 (IIS) 身份验证结合使用来确保 应用程序安全的信息。

2)Forms 身份验证提供程序:提供有关如何使用您自己的代码创建应用程序特定的登录窗体并执行身份验证的信息。

3)Passport 身份验证提供程序提供有关由Microsoft 提供的集中身份验证服务的信息,该服务为成员站点提供单一登录和核心配置。

4)None验证当前项目采用Form方式验证。

这种方式种只需少量或无需代码就可以收集、验证和管理用户凭据的方法4.什么是WEB控件?使用WEB控件有那些优势?答:WEB控件是能拖放在WEB页面上的控件WEB控件优势:1)Web控件是对象,与对象一样,Web控件拥有方法和属性,并且响应事件2)一旦将Web控件包括在Web页中,就可以设置其属性并调用其方法3)可以为Web控件编写服务器端代码以响应在客户端上发生的事件5.ASP。

NET中共有几种类型的控件?各有什么区别?答:WEB控件分为:内部控件、列表控件、复杂控件、验证控件内部控件:内部的使用方法与控件HTML 控件相同,它们映射到 HTML 元素并通过使用r u n a t="server" 属性在服务器上执行;列表控件:用于在Web页面中创建列表;复杂控件:当希望控件拥有复杂的功能或使用HTML元素无法创建的功能丰富的用户界面时,可以使用复杂控件验证控件:输入控件的数据需要进行准确性和取值范围方面的检查;6.ASP。

ASP.NET前台代码绑定后台变量方法总结

ASP.NET前台代码绑定后台变量方法总结

前台代码绑定后台变量⽅法总结经常会碰到在前台代码中要使⽤(或绑定)后台代码中变量值的问题。

⼀般有<%= str%>和<%# str %>两种⽅式,这⾥简单总结⼀下。

如有错误或异议之处,敬请各位指教。

⼀⽅⾯,这⾥所讲的前台即通常的.aspx⽂件,后台指的是与aspx相关联的CodeBehind,⽂件后缀名为.aspx.cs;另⼀⽅⾯,这⾥的绑定是指⽤户发出访问某⼀页⾯指令后,服务器端在执⾏过程中就已经将前台代码进⾏了赋值,⽽后⽣成html格式回传客户端显⽰,⽽并⾮已经显⽰到客户端后,然后通过其他⽅法(如ajax)去服务器端获取相应变量。

备注:上⾯说的两个⽂件是常见的代码隐藏(code-behind)模式,还有⼀种是代码嵌⼊(code-beside, inline)模式,那就是只存在aspx⼀个⽂件,⽽后台代码则写⼊此⽂件的<script type="text/javascript" runat="server"></script>之中(还有⼀些语法上区别),这对于本⽂讨论的问题略有影响,因为代码嵌⼊是声明性代码与C#/代码都⼀起编译到⼀个类⾥⾯,⽽代码隐藏则将声明性代码与C#/代码分开⼏次进⾏翻译/编译,因此前者是局部与局部(partial)的关系后者基类与派⽣类的关系,但这仅仅影响所能绑定变量的范围(与修饰符有关),下⾯会提到。

以下均以代码隐藏模式为例。

⼀般来说,在前台代码的三种位置可能会⽤到(绑定)后台变量:服务器端控件属性或HTML标签属性JavaScript代码中Html显⽰内容的位置(也就是开始标签与结束标签之间的内容,如<div>这⾥</div>(Html标签)或者<asp:Label ID="Label2"runat="server" Text="Label">这⾥</asp:Label>(服务器端控件),它作为占位符把变量显⽰于符号出现的位置)对于第⼀种位置,有⼀些约束条件:(1)⼀般的属性要求是字符串型或数值型(下⾯会提到有些服务器端属性⽀持属性为数据集合);(2)并不是所有的属性都可以绑定变量,有些属性例如runat属性必须是"server"常量,即使绑定的字符串是server,也会导致分析器分析时出错;(3)有⼀种属性,他要求属性值有约束(类型约束,⽐如服务器端控件要求TabIndex属性是short类型,或者字符串内容有约束),也应该在绑定时满⾜,否则依然可能编译时报错;(4)还⼀种属性,虽然属性本⾝有约束,但即使绑定的变量不满⾜约束,也可以编译通过,⽐如input的checked属性,它只有checked字符串是合法的,但如果通过绑定获取到的字符串不是checked,那么这些属性将有⾃⼰内部处理机制,来保证可以正常使⽤;(5)还要注意,即使对于同⼀类属性,服务器端和HTML的属性的处理机制也不同,同样是TabIndex(tabIndex),前者如果不满⾜,则分析器错误,后者则忽略这⼀问题。

ASP.NET中DropDownList下拉框列表控件绑定数据的4种方法

ASP.NET中DropDownList下拉框列表控件绑定数据的4种方法

中DropDownList下拉框列表控件绑定数据的4种⽅法DropDownList Web 服务器控件使⽤户能够从预定义的列表中选择⼀项。

它与 ListBox Web 服务器控件的不同之处在于,其项列表在⽤户单击下拉按钮之前⼀直处于隐藏状态。

另外,DropDownList 控件与 ListBox 控件的不同之处还在于它不⽀持多重选择模式。

DropDownList在html中的呈现对应的是select,下⾯让我们来看⼀下DropDownList绑定数据的⼏种⽅法。

⼀、把Array数组绑到DropDownList复制代码代码如下:string[] Month =new string[7]{ "January", "February", "March", "April", "May", "June", "July" };this.DropDownList1.DataSource = Month;this.DropDownList1.DataBind();这种⽅法只可以绑定⼀组数据到DropDownList,因为DropDownList可以绑定两种数据:1是DataTextField、2是DataValueField,所以第⼀种⽅法绑定后DataTextField的值==DataTextField值。

⼆、把动态Array数组绑定到DropDownList复制代码代码如下:ArrayList ar = new ArrayList();for (int i = 1; i <=12; i++){ar.Add(i+"⽉");}this.DropDownList2.DataSource = ar;this.DropDownList2.DataBind();本质上就是讲1到12⽉加到数组中,如下:复制代码代码如下:ArrayList ar = new ArrayList();ar.Add("1⽉");ar.Add("2⽉");ar.Add("3⽉");ar.Add("4⽉");...this.DropDownList2.DataSource = ar;this.DropDownList2.DataBind();这种⽅法的好处是通过ArrayList.Add的⽅法,可以实现动态添加元素的功能,⽐⽅说,有⼀个DataTable,我们要把DataTable 中⼀⾏的数据读出来添加到Arraylist当中。

什么是数据绑定

什么是数据绑定
<asp:ImageField DataImageUrlField="Image" HeaderText="图片" DataImageUrlFormatString="~\img\{0}" >
</asp:ImageField>
23
Web 程序设计——实用网站开发
数据表中保存图片 文件的字段
手工数据绑定
不使用数据源控件,而是将数据源赋值给数据绑定控件 的DataSource属性,再调用数据绑定控件的DataBind()方法 实现手工数据绑定。
使用绑定表达式
在页面(源码中)设置绑定表达式,数据绑定表达式包 含在 <%# %> 分隔符之内,可使用 Eval 和 Bind 函数。 Eval 函数用于定义单向(只读)绑定。Bind 函数用于定义 双向(可更新)绑定。
5
Web 程序设计——实用网站开发
实例8-1 DropDownList和SqlDataSource结合 显示数据
使用student.mdf数据库中的T_grade表实现如下功能。在 DropDownList中显示sname(姓名)字段,当在其中选 择一项时,在标签上显示所选择的学号(sid)和对应的 sname(姓名)信息,如图所示。
21
Web 程序设计——实用网站开发
实例8-3 自定义GridView数据绑定列显示图片
GridView呈现Product表的部分数据,其中表 头信息以中文表示,显示图片的列为 ImageField列。 源程序:GridViewBound.aspx
22
Web 程序设计——实用网站开发
程序说明
本示例使用的Product表的字段Image存储了对 应图片的路径,此时要在GridView中显示图片, 只需设置ImageField列的属性 DataImageUrlField值为字段名Image,但若在 存储时仅存储图片的文件名,则还需配合使用 DataImageUrlFormatString。例如,假设图片 统一存放在网站根文件夹下的img文件夹中, 字段Image存储图片的文件名,则设置如下:

asp.net网站权限设计实现(二)角色权限绑定

asp.net网站权限设计实现(二)角色权限绑定

网站权限设计实现(二)——角色权限绑定1、关于使用的几张表的说明(1)Module:模块表,记录模块名称、编码等模块基本数据。

(2)Permissions:权限表,记录所有模块权限distinct之后的数据。

(3)ModulePermissions:模块权限,记录每个模块对应的权限,一个模块可能存在多条数据,每条表示该模块的一个操作权限。

(4)Roles:角色表,记录角色名称、编码等角色基本数据。

(5)RolePermissions:角色权限表,记录每个角色对应的权限,一个角色可能存在多条数据,每条数据表示该角色在某个模块的一个操作权限;表中的数据其实记录的是角色编码跟ModulePermissions表中的主键对应,表ModulePermissions中特定主键的数据行就表示了某个模块的一个操作权限。

(6)SUser:用户表,记录用户名等用户基本信息。

(7)UserRole:用户角色表,记录每个用户对应的角色,可以是多个,但本例只设置对应一个,只要用户具有了某个角色,那么该用户就具有了和角色一样的权限。

2、关于PowerDesigher :上一篇介绍了初次在数据库生成表的过程,实际上还可以实现更新和逆向操作(根据数据库中的表在PD中生成表模型)。

3、模拟数据(1)表Module(2)表Permissions(3)表ModulePermissions4、角色分页显示和删除这里实现功能的代码基本都是最初级的代码,后面另一个版本会在架构、UI、代码等方面进行较大的改进;另外这里的代码纯粹是演示,不会考虑注入、异常等方面的处理。

(1)分页显示数据直接使用GridView了(2)在列表页面可以全选本页数据一次性删除,全选/全取消使用JQuery实现,选中时将值(这里是角色编码)保存在一个隐藏域中,隐藏域中的值的格式:'值1','值2',...(数据库中的RoleCode列的数据类型是nvarchar);取消选中时将隐藏域中的值清空;单行CheckBox选中/取消时,将当前行的值追加到隐藏域的值或从隐藏域的值中移除当前行的值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、Repeater 控件 Repeater 控件是模板化的数据绑定列表。Repeater 控件是“无外观的”;即,它不具 有任何内置布局或样式。因此,您必须在控件的模板中明确声明所有 HTML 布局标 记、格式标记和样式标记。
3、DataList 控件 DataList 类是一个多功能的、模板化的数据绑定列表。您可以通过修改模板来自定义此 控件。与 Repeater 控件不同,DataList 支持定向呈现,并且可以根据需要在运行时呈 现到 HTML 表中。
B. 重复值绑定 这些控件可以将其 DataSource 属性绑定到支持 IEnumerable、ICollection 或 IListSource 接口的任一集合。 1、 数据绑定列表控件 DropDownList 控件列表控件都公开 DataSource 和 DataMember 属性,这些属性用于 绑定到集合。
注:关于 2.0 中的 Eval 实现 Eval 在 Page 类中实现,其本质如 protected object Eval(string expression) { return DataBinder.Eval(GetDataItem(), expression); } protected object Eval(string expression, string format) { return DataBinder.Eval(GetDataItem(), expression, format); }
1、第 4,5 种在使用 columnIndex 中无疑是最快的
2、第 4,5 种ቤተ መጻሕፍቲ ባይዱ使用列名大小写匹配时无疑也是最快的
3、当 4,5 种在使用列名大小写不匹配时,同第一种相比结果很微妙
4、但是结论 3 这种比较是基于 DataRowView 对 DataBinder.Eval 调用的优化(即
实现了 ICustomTypeDescriptor) 接口而言的,对于没有实现该接口的数据集合绑
定,如一个自定义的对象集合,无疑,4,5 两种的调用的模式还是推荐之列的
引入了一种新的声明语法 <%# %>。该语法是在 .aspx 页中使用数据绑定的 基础。所有数据绑定表达式都必须包含在这些字符中。
A. 单值绑定<% # %> 公有或受保护的变量
<%# strName %> 方法结果:
<%# getName()%> 表达式:
<%# 1+ 3*20 %> <%# “tong” + “qing” %> <%# Request.Browser.Browser%> 集合: <asp:ListBox id="List1" datasource='<%# myArray %>' runat="server">
注:必须有父控件调用 DataBind()方法,如 Page.DataBind() 与 Control.DataBind() 调用 Page.DataBind 方法后,所有数据源都将绑定到它们的服务器控件。在显式调用 Web 服务器控件的 DataBind 方法或在调用页面级的 Page.DataBind 方法之前,不会有任何数据 呈现给控件。通常,可以从 Page_Load 事件调用 Page.DataBind(或 DataBind)。
C. 数据源 1、DataSet 类(DataTable) DataSet 包含数据的完整表示形式,其中包括表结构、表之间的关系和数据的排序。 DataSet 类非常灵活,可以将数据库中任何种类的信息存储到扩展标记语言 (XML) 文件中。DataSet 类是无状态的;即,您无需连接到服务器连接资源即可将这些类 从客户端传递到服务器。
4、DataGrid 控件 DataGrid 控件是一个多功能的、多列的数据绑定网格。要自定义 DataGrid 中各列的布 局,您可以将列类型设置为“模板”,然后修改列的模板。DataGrid 控件无需模板即可 进行呈现,这使得该控件成了用于报告方案的理想控件。DataGrid 还支持根据列和根 据按钮列进行选择、编辑、删除、分页和排序。
2、DataReader 类 如果您只需显示(而不更改)要呈现的数据,DataReader 类可能是更好的解决方法。 例如,对于 DropDownList 控件,最好使用 DataReader,因为 DataReader 是只进 数据游标。
3、 Array、ArrayList、List 数组
D. 绑定表达式 <%# DataBinder.Eval(Container.DataItem, "ColumnName") %> <%# DataBinder.Eval(Container.DataItem, "ColumnName", null) %> <%# DataBinder.Eval(Container, "DataItem.ColumnName", null) %> <%# ((DataRowView)Container.DataItem)["ColumnName"] %> <%# ((DataRowView)Container.DataItem).Row["ColumnName"] %> <%# Eval("ColumnName ") %>
相关文档
最新文档