仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 568|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET教程之ASP.NET 2.0 GridView控件使用模版

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-16 22:43:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
实不相瞒,Java是我见过的执行效率最低的程序设计语言,前不久在CSDN论坛上有个评测,计算9999的阶乘,同样的循环算法,Java的耗时是.NET的5倍。asp.net|控件<P>  GridView控件是由一系列数据显现控件之一,它能够绑定到SqlDataSource控件以前往的数据纪录的字段以静态天生网格,GridView为我们供应了多种数据绑定列范例,比方BoundField默许数据绑定列范例是一种复杂的数据范例,展示了文本数据值。

  其他范例方面的数据显现文本内容瓜代利用、CheckBoxField复选框显现布尔数据范例、CommandField显现一个按扭,按扭的范例能够是Button一般按扭、LinkButton超链接按扭、ImageButton图片按扭,等等范例,GridView控件还供应Templatefield,利用模板.能够对数据字段举行自界说的模板,模板可包含各类静态文本、lable、TextBox文本框.别的,有各类Templatefield模板,可被用来为用户供应了分歧情形下的模板。比方,ItemTemplate显现模板能够用来制造显现数据时的,但EditItemTemplate编纂模板能够用来制造编纂时、HeaderTemplate自界说表头模板、FooterTemplate自界说表尾模板。

  明天我们要先容怎样使用Templatefield设置GridView的表面款式.上面的示例我们要用GridView控件显现Northwind数据库下的employees(雇员表)的EmployeeID、LastName、FirtName、BrthDote字段,要列出一切的员工,员工的姓、名(并将姓和名在统一个网格显现)延聘日期、当我们编纂数据时聘任日期用日历控件显现。

  新建一个页面,在计划示图中为页面增加一个SqlDataSource控件,用于为GridView控件供应所要显现的数据,新建一个毗连,数据源设置选择当地(local或.)利用SQLServert夹杂考证形式,输出用户名、暗码,选择选择名为Northwind的数据库并测试毗连,测试毗连乐成后,保留毗连字符串单击“下一步”按扭,在“指定来自表或视图中”选择Employees表,在选择列当选择LastName,FirstName,Title,HireDate等字段。单击“初级”,选中“天生INSERT、UPDATE和DELETE语句”和“利用开放式并发”复选框,然后单击“完成”按扭完成对数据的选择。

  为页面增加GridView控件,在便利义务面板中,选择SqlDataSource,然后封闭便利义务面板。如许就创立了数据绑定控件。并为GridView控件设置主动套用格局。保留并运转如所示,





  HTML代码以下:

<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%>

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>无题目页</title>
</head>
<body>
<formid="form1"runat="server">
<div>
<asp:SqlDataSourceID="SqlDataSource1"runat="server"ConflictDetection="CompareAllValues"
ConnectionString="<%$ConnectionStrings:NorthwindConnectionString%>"DeleteCommand="DELETEFROM[Employees]WHERE[EmployeeID]=@original_EmployeeIDAND[LastName]=@original_LastNameAND[FirstName]=@original_FirstNameAND[Title]=@original_TitleAND[HireDate]=@original_HireDate"
InsertCommand="INSERTINTO[Employees]([LastName],[FirstName],[Title],[HireDate])VALUES(@LastName,@FirstName,@Title,@HireDate)"
OldValuesParameterFormatString="original_{0}"SelectCommand="SELECT[EmployeeID],[LastName],[FirstName],[Title],[HireDate]FROM[Employees]"
UpdateCommand="UPDATE[Employees]SET[LastName]=@LastName,[FirstName]=@FirstName,[Title]=@Title,[HireDate]=@HireDateWHERE[EmployeeID]=@original_EmployeeIDAND[LastName]=@original_LastNameAND[FirstName]=@original_FirstNameAND[Title]=@original_TitleAND[HireDate]=@original_HireDate">
<DeleteParameters>
<asp:ParameterName="original_EmployeeID"Type="Int32"/>
<asp:ParameterName="original_LastName"Type="String"/>
<asp:ParameterName="original_FirstName"Type="String"/>
<asp:ParameterName="original_Title"Type="String"/>
<asp:ParameterName="original_HireDate"Type="DateTime"/>
</DeleteParameters>
<UpdateParameters>
<asp:ParameterName="LastName"Type="String"/>
<asp:ParameterName="FirstName"Type="String"/>
<asp:ParameterName="Title"Type="String"/>
<asp:ParameterName="HireDate"Type="DateTime"/>
<asp:ParameterName="original_EmployeeID"Type="Int32"/>
<asp:ParameterName="original_LastName"Type="String"/>
<asp:ParameterName="original_FirstName"Type="String"/>
<asp:ParameterName="original_Title"Type="String"/>
<asp:ParameterName="original_HireDate"Type="DateTime"/>
</UpdateParameters>
<InsertParameters>
<asp:ParameterName="LastName"Type="String"/>
<asp:ParameterName="FirstName"Type="String"/>
<asp:ParameterName="Title"Type="String"/>
<asp:ParameterName="HireDate"Type="DateTime"/>
</InsertParameters>
</asp:SqlDataSource>

</div>
<asp:GridViewID="GridView1"runat="server"AutoGenerateColumns="False"CellPadding="4"
DataKeyNames="EmployeeID"DataSourceID="SqlDataSource1"ForeColor="#333333"GridLines="None"
Width="640px">
<FooterStyleBackColor="#990000"Font-Bold="True"ForeColor="White"/>
<Columns>
<asp:BoundFieldDataField="EmployeeID"HeaderText="EmployeeID"InsertVisible="False"
ReadOnly="True"SortExpression="EmployeeID"/>
<asp:BoundFieldDataField="LastName"HeaderText="LastName"SortExpression="LastName"/>
<asp:BoundFieldDataField="FirstName"HeaderText="FirstName"SortExpression="FirstName"/>
<asp:BoundFieldDataField="Title"HeaderText="Title"SortExpression="Title"/>
<asp:BoundFieldDataField="HireDate"HeaderText="HireDate"SortExpression="HireDate"/>
</Columns>
<RowStyleBackColor="#FFFBD6"ForeColor="#333333"/>
<SelectedRowStyleBackColor="#FFCC66"Font-Bold="True"ForeColor="Navy"/>
<PagerStyleBackColor="#FFCC66"ForeColor="#333333"HorizontalAlign="Center"/>
<HeaderStyleBackColor="#990000"Font-Bold="True"ForeColor="White"/>
<AlternatingRowStyleBackColor="White"/>
</asp:GridView>
</form>
</body>
</html>
<P>  今朝,每名员工的姓和名展现了分歧表格中。我们也能够在一个表格中同时显现姓和名.在此,我们必要利用Templatefield编纂模板.我们能够增添一个新的Templatefield,加上它必要的标志和句法databinding,点击编纂栏的毗连GridView的智能标签、选择编纂列选项.选择Boundfield属性的在左下角的将次字段转换为TemplateField选项,然后单击"转换成Templatefield这一项,如所示。





  这时候我们在计划视图中并没有发明有甚么改动发明,实践上TemplateField已为firstName字段默许设置了EditItemTemplate编纂时模版和ItemTemplate自界说一般模版,并取代了本来的代码
<asp:BoundFieldDataField="FirstName"HeaderText="FirstName"SortExpression="FirstName"/>新的代码以下:

<asp:TemplateFieldHeaderText="FirstName"SortExpression="FirstName">
<EditItemTemplate>
<asp:TextBoxID="TextBox1"runat="server"Text=<%#Bind("FirstName")%>></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:LabelID="Label1"runat="server"Text=<%#Bind("FirstName")%>></asp:Label>
</ItemTemplate>
</asp:TemplateField>
  人人能够看到,Templatefield分为两个模板―ItemTemplate自界说一般模版用Lable标签显现数据字段firstName,EditItemTemplate编纂时模版用textbox文本框显现数据字段firstName.人人能够看到在两个模板中都都有<%#bind("fieldname")%>语句,用来指定要绑定的数据字段,我们绑定的字段都为fieldname。

  经由过程在计划视图中单击GridView模板的智能标签选择编纂摸版一项,能够进进GridView模板的编纂界面。如所示。





  我们要在一个网格中同时显现姓和名,这个时分我们只必要编纂一下ItemTemplate模版便可以,从工具箱当选择一个Lable控件增加到ItemTemplate的模板编纂界面中。如所示。




<P>  在ItemTemplate模版中增加Lable标签后,接上去我们要做的是要为其绑定命据字段,单击Lable智能标签选择选择编纂databindings选项.如所示。





  这时候就会弹出databindings对话框.在这里你能够选择要绑定的属性和所绑定的数据字段,在可绑定属性中我们选择Text属性,字段绑定我们选择LastName字段。如所示。





  注重一点:在databindings对话框中有一个双向数据绑定的复选框,这是在数据拔出和编纂时才会用到,这一点我们在今后会先容到,我们运转这个程序,我们能够看到在FirstName一列中同时显现了LastName和FirstName两个字段。如所示。





  如许我们就完成这第一步,上面是我们修正后的这些变更后的GridView控件的HTML代码:

<asp:GridViewID="GridView1"runat="server"AutoGenerateColumns="False"CellPadding="4"
DataKeyNames="EmployeeID"DataSourceID="SqlDataSource1"ForeColor="#333333"GridLines="None"
Width="640px">
<FooterStyleBackColor="#990000"Font-Bold="True"ForeColor="White"/>
<Columns>
<asp:BoundFieldDataField="EmployeeID"HeaderText="EmployeeID"InsertVisible="False"
ReadOnly="True"SortExpression="EmployeeID"/>
<asp:BoundFieldDataField="LastName"HeaderText="LastName"SortExpression="LastName"/>
<asp:TemplateFieldHeaderText="FirstName"SortExpression="FirstName">
<EditItemTemplate>
<asp:TextBoxID="TextBox1"runat="server"Text=<%#Bind("FirstName")%>></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:LabelID="Label1"runat="server"Text=<%#Bind("FirstName")%>></asp:Label>
<asp:LabelID="Label2"runat="server"Text=<%#Eval("LastName")%>Width="62px"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundFieldDataField="Title"HeaderText="Title"SortExpression="Title"/>
<asp:BoundFieldDataField="HireDate"HeaderText="HireDate"SortExpression="HireDate"/>
</Columns>
<RowStyleBackColor="#FFFBD6"ForeColor="#333333"/>
<SelectedRowStyleBackColor="#FFCC66"Font-Bold="True"ForeColor="Navy"/>
<PagerStyleBackColor="#FFCC66"ForeColor="#333333"HorizontalAlign="Center"/>
<HeaderStyleBackColor="#990000"Font-Bold="True"ForeColor="White"/>
<AlternatingRowStyleBackColor="White"/>
</asp:GridView>
<P>  接上去我们要做的是在编纂形态下雇员招聘日期用日历控件显现出来,点击编纂栏的毗连GridView的智能标签、选择编纂列选项.选择hireddate字段,选择Boundfield属性的在左下角的将次字段转换为TemplateField选项,然后单击"转换成Templatefield这一项,如所示。





  这时候我们进进再次进进编纂摸版时,单击GridView的智能标签,选择编纂模版,templatefield含有一个ItemTemplate和EditItemTemplate的标签,选择hiredateTemplatefield的EditItemTemplatee选项,将lable标签删除,从工具箱当选择日历控件放在EditItemTemplate编纂模版界面上,并计划日历控件控件的作风款式。如所示。





  我们为日历控件选择要显现的数据字段,在可绑定属性分离选择selecteddate属性和VisibleDate属性举行数据绑定,当我们单击编纂按扭对GridView的数据举行修正时,在hireddate一列中不在是一个文本框让我们输出要修正的日期而是一个可用来选择日期的日历控件,如许能够便利用户对日期的修正,也避免了用户输出的字段不是日期而激发的非常,如0所示。



0


  运转程序如1所示。



1


  到今朝为止,我们已使用了两个模版:在统一个网格中同时显现两个数据字段,对数据编纂时不在是一个文本框输出编纂内容而是一个日历控件用于日期的选择。

  GridView控件的HTML代码以下:

<asp:GridViewID="GridView1"runat="server"AutoGenerateColumns="False"CellPadding="4"
DataKeyNames="EmployeeID"DataSourceID="SqlDataSource1"ForeColor="#333333"GridLines="None"
Width="620px"AutoGenerateEditButton="True">
<FooterStyleBackColor="#990000"Font-Bold="True"ForeColor="White"/>
<Columns>
<asp:BoundFieldDataField="EmployeeID"HeaderText="EmployeeID"InsertVisible="False"
ReadOnly="True"SortExpression="EmployeeID"/>
<asp:BoundFieldDataField="LastName"HeaderText="LastName"SortExpression="LastName"/>
<asp:TemplateFieldHeaderText="FirstName"SortExpression="FirstName">
<EditItemTemplate>
<asp:TextBoxID="TextBox1"runat="server"Text=<%#Bind("FirstName")%>></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:LabelID="Label1"runat="server"Text=<%#Bind("FirstName")%>></asp:Label>
<asp:LabelID="Label2"runat="server"Text=<%#Eval("LastName")%>Width="62px"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundFieldDataField="Title"HeaderText="Title"SortExpression="Title"/>
<asp:TemplateFieldHeaderText="HireDate"SortExpression="HireDate">
<EditItemTemplate>

<asp:CalendarID="Calendar1"runat="server"BackColor="#FFFFCC"BorderColor="#FFCC66"
BorderWidth="1px"DayNameFormat="Shortest"Font-Names="Verdana"Font-Size="8pt"
ForeColor="#663399"Height="200px"SelectedDate=<%#Bind("HireDate")%>ShowGridLines="True"
VisibleDate=<%#Eval("HireDate")%>Width="220px">
<SelectedDayStyleBackColor="#CCCCFF"Font-Bold="True"/>
<TodayDayStyleBackColor="#FFCC66"ForeColor="White"/>
<SelectorStyleBackColor="#FFCC66"/>
<OtherMonthDayStyleForeColor="#CC9966"/>
<NextPrevStyleFont-Size="9pt"ForeColor="#FFFFCC"/>
<DayHeaderStyleBackColor="#FFCC66"Font-Bold="True"Height="1px"/>
<TitleStyleBackColor="#990000"Font-Bold="True"Font-Size="9pt"ForeColor="#FFFFCC"/>
</asp:Calendar>
</EditItemTemplate>
<ItemTemplate>

<asp:LabelID="Label3"runat="server"Text=<%#Eval("HireDate")%>></asp:Label>

</ItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyleBackColor="#FFFBD6"ForeColor="#333333"/>
<SelectedRowStyleBackColor="#FFCC66"Font-Bold="True"ForeColor="Navy"/>
<PagerStyleBackColor="#FFCC66"ForeColor="#333333"HorizontalAlign="Center"/>
<HeaderStyleBackColor="#990000"Font-Bold="True"ForeColor="White"/>
<AlternatingRowStyleBackColor="White"/>
</asp:GridView>
  在GridView控件中使用模版能够天真地展示数据,天真性很高,我们能够依据分歧的必要设置不必的模版。以前学了大概半年时间的asp(没有机会做大系统,最多是自己对公司系统做些调整和修改还有一些小程序)。应该说开始接触asp.net是今年元月5号的事。现在很想把公司的系统重新用.net来架构,却不知道如何下手。
乐观 该用户已被删除
沙发
发表于 2015-1-19 18:35:23 | 只看该作者
市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。
不帅 该用户已被删除
板凳
发表于 2015-1-24 15:36:24 | 只看该作者
比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
冷月葬花魂 该用户已被删除
地板
发表于 2015-2-1 21:23:50 | 只看该作者
主流网站开发语言之PHPHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。
谁可相欹 该用户已被删除
5#
发表于 2015-2-7 15:13:52 | 只看该作者
Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!
6#
 楼主| 发表于 2015-2-22 11:04:56 | 只看该作者
JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。
金色的骷髅 该用户已被删除
7#
发表于 2015-3-6 23:58:40 | 只看该作者
HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.
山那边是海 该用户已被删除
8#
发表于 2015-3-13 23:01:16 | 只看该作者
由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。
蒙在股里 该用户已被删除
9#
发表于 2015-3-20 20:59:36 | 只看该作者
Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-26 21:50

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表