兰色精灵 发表于 2015-1-16 22:32:36

ASP.NET网页设计ASP.NET:优化DataGrid控件的编纂功能

你觉得学习.NET怎么样,我懂的少,问的可能很幼稚,见笑了啊:)asp.net|datagrid|datagrid控件|优化  只管在下面的实例中我们已完成了DataGrid的在线编纂功效,可是,假如我们已习气了C/S布局的程序,就会感到到上个实例中编纂的不敷:提交数据频仍,减轻了服务器的包袱。在这一节中,我们使用一个实例来演示优化后的DataGrid控件的编纂功效,个中的手艺就是引进批量更新数据。引进的一个新常识就是控件的FindControl办法。<P>我们来看详细实例。起首在DataConWeb项目里,增加一个WebForm,定名为DataGrid_Sample6.aspx,然后增加一个DataGrid控件,因为我们做了DataGrid控件的显现模版,而且为了优化其编纂属性,我们出格使用<asp:TemplateColumn><ItemTemplate></ItemTemplate></asp:TemplateColumn>属性增加了DropDownList控件和CheckBox控件。为了便于实例使用和读者了解,我们新建一个TeacherInfor.mdb数据库,该数据库包括一个teacher数据表,字段范例和假造数据如.11和9.12所示。


.11teacher数据表中的字段属性


.12teacher数据表中数据纪录
DataGrid_Sample6.aspx的次要HTML代码以下:
<bodytopMargin="0"MS_POSITIONING="GridLayout">
<formid="Form1"method="post"runat="server">
<FONTface="宋体"><b>经济办理学院教员信息</b>
<asp:DataGridid="DataGrid1"
runat="server"AutoGenerateColumns="False"Width="320px"PageSize="4"
AllowPaging="True">
<AlternatingItemStyleBackColor="WhiteSmoke"></AlternatingItemStyle>
<ItemStyleBackColor="GhostWhite"></ItemStyle>
<HeaderStyleBackColor="LightSteelBlue"></HeaderStyle>
<Columns>
<asp:BoundColumnDataField="id"HeaderText="编号"></asp:BoundColumn>
<asp:BoundColumnDataField="name"HeaderText="姓名"></asp:BoundColumn>
<asp:TemplateColumnHeaderText="性别">
<ItemTemplate>
<asp:DropDownListid="sex"runat="server"SelectedIndex=<%#Cint(DataBinder.Eval(Container,"DataItem.sex"))%>>
<asp:ListItemValue="0">男</asp:ListItem>
<asp:ListItemValue="1">女</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumnHeaderText="所获学位">
<ItemTemplate>
<asp:DropDownListid="degree"runat="server"SelectedIndex=<%#cint(DataBinder.Eval(Container,"DataItem.degree"))%>>
<asp:ListItemValue="0">学士</asp:ListItem>
<asp:ListItemValue="1">硕士</asp:ListItem>
<asp:ListItemValue="2">博士</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumnHeaderText="性别">
<ItemTemplate>
<asp:DropDownListid="title"runat="server"SelectedIndex=<%#Cint(DataBinder.Eval(Container,"DataItem.title"))%>>
<asp:ListItemValue="0">讲师</asp:ListItem>
<asp:ListItemValue="1">副传授</asp:ListItem>
<asp:ListItemValue="2">传授</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumnHeaderText="婚否">
<ItemTemplate>
<asp:CheckBoxRunat=serverChecked=<%#DataBinder.Eval(Container,"DataItem.marry")%>ID="marry"Text="婚否">
</asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyleBackColor="LightSteelBlue"Mode="NumericPages"></PagerStyle>
</asp:DataGrid>
<asp:buttonid="Button1"
runat="server"Text="批量更新">
</asp:button></FONT>
</form>
</body>
在下面HTML代码中,注重DataGrid控件值的数据绑定:
SelectedIndex=<%#cint(DataBinder.Eval(Container,"DataItem.degree"))%>
DataGrid_Sample6.aspx.vb中的逻辑代码以下:
----codebegin----------
-省略定名空间的援用
PublicClassDataGrid_Sample6
InheritsSystem.Web.UI.Page
#Region"Web窗体计划器天生的代码"
此处省略窗体计划器天生的代码
#EndRegion
PrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
在此处安排初始化页的用户代码
IfNotIsPostBackThen
getdata()
EndIf
EndSub
读取数据
Subgetdata()
DimmyconAsOleDb.OleDbConnection
viewstate("constr")="provider=microsoft.jet.oledb.4.0;datasource="+Server.MapPath(".")+"TeacherInfor.mdb"
利用viewsate保留Connection毗连字符串
DimmycmdAsOleDb.OleDbDataAdapter
声明DataAdapter工具
DimmysqlAsString
声明Command命令的SQL字符串
Try
mycon=NewOleDb.OleDbConnection(viewstate("constr"))
实例化Connection工具
mysql="Selectid,name,sex,degree,title,marryfromteacher"
设置SQL语句,即查询数据库中一切内容
mycmd=NewOleDb.OleDbDataAdapter(mysql,mycon)
DimdtAsData.DataSet=NewData.DataSet
声明DataSet工具,并实例话
mycmd.Fill(dt)
添补数据,即在内存中天生DataSet模子数据库
DataGrid1.DataSource=dt.Tables(0)
为DataGrid1控件指定命据源
DataGrid1.DataBind()
实行绑定
CatchexAsException
Response.Write("程序堕落,信息形貌以下:<br>"&ex.Message)
Finally
mycon.Close()
EndTry
EndSub
翻页事务
PrivateSubDataGrid1_PageIndexChanged(ByValsourceAsObject,ByValeAsSystem.Web.UI.WebControls.DataGridPageChangedEventArgs)HandlesDataGrid1.PageIndexChanged
DataGrid1.CurrentPageIndex=e.NewPageIndex
getdata()
EndSub
批量更新历程
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
DimmysqlAsString
DimsexAsDropDownList
DimdegreeAsDropDownList
DimtitleAsDropDownList
DimmarryAsCheckBox
DimmyconAsOleDb.OleDbConnection=NewOleDb.OleDbConnection(viewstate("constr"))
mycon.Open()
DimmycmdAsOleDb.OleDbCommand
Try
DimitemAsDataGridItem
界说item变量,代表这DataGrid控件的每个Item项
ForEachitemInDataGrid1.Items
遍历DataGrid1的Item项
sex=item.FindControl("sex")
使用FindControl办法实例化性别字段的列表控件
degree=item.FindControl("degree")
使用FindControl办法实例化学位字段的列表控件
title=item.FindControl("title")
使用FindControl办法实例化职称字段的列表控件
marry=item.FindControl("marry")
使用FindControl办法实例化婚否字段的列表控件
上面为mysql语句赋值,使用已实例化的控件,就能够猎取它的值。
mysql="updateteachersetsex="&sex.SelectedValue&",degree="&degree.SelectedValue&","&_
"marry="&marry.Checked&",title="&title.SelectedValue&"whereid="&item.Cells(0).Text
mycmd=NewOleDb.OleDbCommand(mysql,mycon)
写进更新
mycmd.ExecuteNonQuery()
Next
CatchexAsException
Response.Write("程序堕落,信息形貌以下:<br>"&ex.Message)
Finally
mycon.Close()
Response.Write("<script>alert(祝贺您!
你已乐成的更新了纪录!);</script>")
提醒更新乐成!
EndTry
getdata()
EndSub
EndClass
------codeend---------
  保留编译后,DataGrid_Sample6.aspx运转效果如.13所示。


如.13DataGrid_Sample6.aspx运转效果
经由过程以上几节的进修,我们对DataGrid控件已有个对照具体的熟悉了。但我们晓得,DataGrid控件是个功效非常壮大的数据绑定控件,限于篇幅,只能大略先容,另有良多功效只要在实践使用中,多探究,多理论,才干真正把握。鄙人面一节里,我们将一同来进修另外一个数据绑定控件DDDataList控件。说句实话,Java跨平台根本就不是外行人想想的那种,一次编译,处处运行。

海妖 发表于 2015-1-19 16:18:59

我觉得什么语言,精通就好,你要做的就是比其他80%的人都厉害,你就能得到只有20%的人才能得到的高薪。

爱飞 发表于 2015-2-4 02:49:43

ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。

灵魂腐蚀 发表于 2015-2-9 12:00:59

由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。

精灵巫婆 发表于 2015-2-27 06:08:47

微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。

小妖女 发表于 2015-3-8 22:46:21

ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。

变相怪杰 发表于 2015-3-16 16:30:48

ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。

不帅 发表于 2015-3-22 23:43:03

众所周知,Windows以易用而出名,也因此占据不少的服务器市场。
页: [1]
查看完整版本: ASP.NET网页设计ASP.NET:优化DataGrid控件的编纂功效