asp.net中Repeater控件用法笔记__3.docx

上传人:PIYPING 文档编号:11651331 上传时间:2021-08-28 格式:DOCX 页数:26 大小:18.24KB
返回 下载 相关 举报
asp.net中Repeater控件用法笔记__3.docx_第1页
第1页 / 共26页
asp.net中Repeater控件用法笔记__3.docx_第2页
第2页 / 共26页
asp.net中Repeater控件用法笔记__3.docx_第3页
第3页 / 共26页
asp.net中Repeater控件用法笔记__3.docx_第4页
第4页 / 共26页
asp.net中Repeater控件用法笔记__3.docx_第5页
第5页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《asp.net中Repeater控件用法笔记__3.docx》由会员分享,可在线阅读,更多相关《asp.net中Repeater控件用法笔记__3.docx(26页珍藏版)》请在三一文库上搜索。

1、中Repeater控件用法笔记_ 大家可能都对datagrid比较熟识,但是假如在数据量大的时候,我们就得考虑用法repeater作为我们的数据绑定控件了。Repeater控件与DataGrid (以及DataList)控件的主要区分是在于如何处理HTML。ASP.NET建立HTML代码以显示DataGrid控件,但Repeater允许开发人员决定如何显示数据。所以,你可以选择将数据显示在一个HTML表格中或者一个挨次列表中。这主要取决于你的选择,但你必需将正确的HTML插入到 ASP.NET页面中。 模板与DataList一样,Repeater控件只支持模板。以下的模板可供选择: Alter

2、natingItemTemplate: 指定如何显示每一其它选项。 ItemTemplate: 指定如何显示选项。(AlternatingItemTemplate可以掩盖这一模板。) HeaderTemplate: 建立如何显示标题。 FooterTemplate: 建立如何显示页脚。 SeparatorTemplate: 指定如何显示不同选项之间的分隔符。 你可以用法这些模板来显示你盼望的数据。唯一具有强制性的模板是ItemTemplate,全部其它的模板都是具有选择性的。 对于处理一个数据源,Repeater控件具有与DataGrid与DataList相同的属性: DataMember:获

3、得或者设置与 Repeater 控件绑定的相应DataSource属性的表格。 DataSource:获得或者设置为 Repeater 显示供应数据的数据源。 除此之外,还有一个Items属性,你可以通过这一属性编程访问Repeater数据中单一选项。它返回一个RepeaterItemCollection对象,为一组RepeaterItem对象的集合,代表 Repeater 数据的每一行。 ASP.NET Web数据控件还有其它一个共性:它们都用法DataBind方法来生成用户界面。调用这一方法可以返回并显示数据(假设DataSource和 DataMember属性设置正确)。在查看DataB

4、ind方法之前,我们先看看如何在一个Web页面中用法一个Repeater控件。 用法Repeater控件 用法Repeater控件的第一步骤是决定我们将要用法的数据源和字段。例如,我们将要用法SQL Server Northwind数据库中的Employees列表。Web页面将显示职工的完整名字,地址,以及电话号码。HTML将用法DIV标记,用 Repeater 模板来分隔内容。下面是 Web 页面的 HTML 内容: 前台代码 代码如下 asp:Repeater ID=Repeater1 runat=server HeaderTemplatetable cellpadding=0 cells

5、pacing=0 border=1 align=center class=auto-style1 tr align=left th编号/th th姓名/th th年龄/th th班级/th th零花/th /tr /HeaderTemplate ItemTemplate tr td%#Eval(id)%/td td%#Eval(name)%/td td%#Eval(age)%/td td%#Eval(classid)%/td td%#Eval(salary)%/td /tr /ItemTemplate FooterTemplate/table/FooterTemplate /asp:Repea

6、ter 后台代码 代码如下 string sql = string.Format(select * from person); DataTable dt = sqlhelper.helper.ExecuteQuery(sql); Repeater1.DataSource = dt; Repeater1.DataBind(); AspNetpager的用法方法: 首先注册% Register Assembly=AspNetPager Namespace=Wuqi.Webdiyer TagPrefix=webdiyer % 前台: 代码如下 webdiyer:AspNetPager ID=AspN

7、etPager1 runat=server CustomInfoHTML=第%CurrentPageIndex%页,共%PageCount%页,每页%PageSize%条 FirstPageText=首页 LastPageText=尾页 LayoutType=Table NextPageText=下一页 onpagechanging=AspNetPager1_PageChanging PageIndexBoxType=DropDownList PagingButtonLayoutType=Span PrevPageText=上一页 ShowCustomInfoSection=Left Show

8、PageIndexBox=Always SubmitButtonText=Go TextAfterPageIndexBox=页 TextBeforePageIndexBox=转到 Width=450px PageSize=3 /webdiyer:AspNetPager 后台: 代码如下 private void AddPages(Repeater rpt,Wuqi.Webdiyer.AspNetPager anp,DataTable dt) PagedDataSource pds = new PagedDataSource(); pds.AllowPaging = true; pds.Data

9、Source = dt.DefaultView; anp.RecordCount = dt.Rows.Count;/给分页控件指定当前总数 pds.PageSize = anp.PageSize;/确定分页,每页有n项 pds.CurrentPageIndex = anp.CurrentPageIndex - 1;/确定当前页数 rpt.DataSource = pds;/绑定数据源 rpt.DataBind(); protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e

10、) AspNetPager1.CurrentPageIndex = e.NewPageIndex; BindPersonData(); 例子 repeater控件动态添加、删除一行 代码如下 script type=text/javascript var txtEquipmentIdsIDArray = new Array(); function OpenWindow(clientId, TypeId, ReqNum) var url = ./EquipmentIssue/EquipmentRequestIssue.aspx?TypeId= + TypeId + ReqNum= + ReqNu

11、m; var widths = 600; var heigths = 450; var winPar = window.showModalDialog(url, window, dialogWidth= + widths + px;dialogHeight= + heigths + px;status=no;center=yes;scroll=no;help:No;); if (winPar != undefined) var txtEquipmentIds = document.getElementById(clientId); txtEquipmentIds.value = winPar;

12、 / /审批用户控件中保存发放的EquipmentId / var IsExistEquipmentIdsID = false; / for (var i = 0; i txtEquipmentIdsIDArray.length; i+) / if (txtEquipmentIdsIDArrayi = clientId) / IsExistEquipmentIdsID = true; / / / if (IsExistEquipmentIdsID = false) / txtEquipmentIdsIDArray.push(clientId); / / var tempEquipmentId

13、= ; / for (var i = 0; i txtEquipmentIdsIDArray.length; i+) / tempEquipmentId = tempEquipmentId + document.getElementById(txtEquipmentIdsIDArrayi).value; / var hiddenEquipmentIds = document.getElementById(UC_ApprovalAction1_hfEquipmentIds); / hiddenEquipmentIds.value = tempEquipmentId; / / /alert(hid

14、denEquipmentIds.value); var tempReturnValue = ; var tb_Request = document.getElementById(tb_Request); var tr = tb_Request.getElementsByTagName(tr); for (var i = 0; i tr.length; i+) if (tri.id != ) var span_EquRequestItemId = tri.getElementsByTagName(span); /猎取申请明细的IDEquRequestItemId var select_ddlSt

15、ation; /猎取用法工位StationId var option = tri.getElementsByTagName(select)1.getElementsByTagName(option); for (var j = 0; j option.length; j+) if (optionj.selected) select_ddlStation = optionj var textarea_EquipmentIds = tri.getElementsByTagName(textarea); /猎取发放的资产号EquipmentNo tempReturnValue = tempRetur

16、nValue + span_EquRequestItemId0.innerText + : + select_ddlStation.value + : + textarea_EquipmentIds0.innerText + |; var hiddenEquipmentIds = document.getElementById(UC_ApprovalAction1_hfEquipmentIds); hiddenEquipmentIds.value = tempReturnValue; /alert(hiddenEquipmentIds.value); /script Repeater: 代码如

17、下 div id=div_Repeater asp:HiddenField ID=hfRptColumns runat=server Value=Guid,EquRequestItemId,EquipmentType,Station,EquipmentNum,EquipmentIds / table id=tb_Request cellpadding=1 cellspacing=0 width=100% style=background-color: #DFE8F6; font-size:12px; padding:10px; thead tr th序号/th th明细编号/th th 资产类

18、型 /th th 用法工位 /th th 申请数量 /th th 发放的资产号font color=red(资产管理员填写)/font /th /tr /thead tbody asp:Repeater ID=rptRequest runat=server onitemcommand=rptRequest_ItemCommand onitemdatabound=rptRequest_ItemDataBound ItemTemplate tr id=tr_Request td %# Container.ItemIndex+1 % asp:Label ID=lblGuid runat=server

19、 Text=%#Eval(Guid) % Visible=false/asp:Label /td tdasp:Label ID=lblEquRequestItemId runat=server Text=%#Eval(EquRequestItemId) %/asp:Label/td td asp:DropDownList ID=ddlEquipmentType runat=server/asp:DropDownList asp:Label ID=lblEquipmentType runat=server Text=%#Eval(EquipmentType) % Visible=false/as

20、p:Label /td td asp:DropDownList ID=ddlStation runat=server/asp:DropDownList asp:Label ID=lblStation runat=server Text=%#Eval(Station) % Visible=false/asp:Label /td tdasp:TextBox ID=txtReqEquipmentNum runat=server Text=%#Eval(EquipmentNum) %/asp:TextBox/td tdasp:TextBox ID=txtEquipmentIds runat=serve

21、r Text=%#Eval(EquipmentIds) % TextMode=MultiLine/asp:TextBox/td tdasp:Button ID=btnAddRow runat=server Text=新增一行 CommandName=add / nbsp;nbsp;nbsp;nbsp;asp:Button ID=btnDeleteRow runat=server Text=删除本行 CommandName=delete /td /tr /ItemTemplate /asp:Repeater /tbody /table /div 后台: 代码如下 / summary / 绑定re

22、peater的数据源 / /summary private void RepeaterBindData() DataTable dt = DefineDataTableSchema(hfRptColumns.Value); if (RequestBusinessNo = null) LoadData(dt); else LoadData(RequestBusinessNo.ToString(), dt); rptRequest.DataSource = dt; rptRequest.DataBind(); private void LoadData(string businessNo, Dat

23、aTable dt) string strSql = select * from EMS_EquipmentRequestItem where BussinessNo = + businessNo +; DataTable dt_EquipmentRequestItem = DBUtility.DbHelperSQL.Query(strSql).Tables0; /for (int i = 0; i dt_EquipmentRequestItem.Rows.Count; i+) foreach (DataRow dr in dt_EquipmentRequestItem.Rows) DataR

24、ow row = dt.NewRow(); rowGuid = Guid.NewGuid(); rowEquRequestItemId = drEquRequestItemId.ToString(); rowEquipmentType = drTypeId.ToString(); rowStation = drStationId.ToString(); rowEquipmentNum = drEquipmentNum.ToString(); rowEquipmentIds = drEquipmentIds.ToString(); dt.Rows.Add(row); / summary / re

25、peater数据默认加载 / /summary / param name=dt/param private void LoadData(DataTable dt) /默认显示1行 for (int i = 0; i 1; i+) DataRow row = dt.NewRow(); dt.Rows.Add(row); /为第一行加载一些数据 DataRow row0 = dt.Rows0; row0Guid = Guid.NewGuid(); row0EquRequestItemId = ; row0EquipmentType = ; row0Station = ; row0Equipment

26、Num = 1;/默认初始为1 row0EquipmentIds = ; / summary / 依据repeater相对应的列名,定义数据源datatable的schema / /summary / param name=columns列名/param / returns/returns public DataTable DefineDataTableSchema(string columns) DataTable dt = new DataTable(); string columnsAry = columns.Split(,); foreach (string str in column

27、sAry) dt.Columns.Add(str); return dt; protected void rptRequest_ItemCommand(object source, RepeaterCommandEventArgs e) if (e.CommandName = add) System.Web.UI.WebControls.Label lblGuid = (System.Web.UI.WebControls.Label)e.Item.FindControl(lblGuid); /首先,复原数据源 DataTable dt = DefineDataTableSchema(hfRpt

28、Columns.Value); foreach (RepeaterItem item in rptRequest.Items) DataRow newRow = dt.NewRow(); newRowGuid = (System.Web.UI.WebControls.Label)item.FindControl(lblGuid).Text; newRowEquRequestItemId = (System.Web.UI.WebControls.Label)item.FindControl(lblEquRequestItemId).Text; newRowEquipmentType = (Dro

29、pDownList)item.FindControl(ddlEquipmentType).SelectedValue; newRowStation = (DropDownList)item.FindControl(ddlStation).SelectedValue; newRowEquipmentNum = (TextBox)item.FindControl(txtReqEquipmentNum).Text; newRowEquipmentIds = (TextBox)item.FindControl(txtEquipmentIds).Text; dt.Rows.Add(newRow); if

30、 (lblGuid.Text = (System.Web.UI.WebControls.Label)item.FindControl(lblGuid).Text) /添加一行 DataRow row = dt.NewRow(); rowGuid = Guid.NewGuid(); rowEquipmentType = ; rowStation = ; rowEquipmentNum = 1;/默认初始为1 rowEquipmentIds = ; dt.Rows.Add(row); rptRequest.DataSource = dt; rptRequest.DataBind(); else i

31、f (e.CommandName = delete) System.Web.UI.WebControls.Label lblGuid = (System.Web.UI.WebControls.Label)e.Item.FindControl(lblGuid); /首先,复原数据源 DataTable dt = DefineDataTableSchema(hfRptColumns.Value); foreach (RepeaterItem item in rptRequest.Items) if (lblGuid.Text != (System.Web.UI.WebControls.Label)

32、item.FindControl(lblGuid).Text) DataRow newRow = dt.NewRow(); newRowGuid = (System.Web.UI.WebControls.Label)item.FindControl(lblGuid).Text; newRowEquRequestItemId = (System.Web.UI.WebControls.Label)item.FindControl(lblEquRequestItemId).Text; newRowEquipmentType = (DropDownList)item.FindControl(ddlEq

33、uipmentType).SelectedValue; newRowStation = (DropDownList)item.FindControl(ddlStation).SelectedValue; newRowEquipmentNum = (TextBox)item.FindControl(txtReqEquipmentNum).Text; newRowEquipmentIds = (TextBox)item.FindControl(txtEquipmentIds).Text; dt.Rows.Add(newRow); rptRequest.DataSource = dt; rptReq

34、uest.DataBind(); protected void rptRequest_ItemDataBound(object sender, RepeaterItemEventArgs e) if (e.Item.ItemType = ListItemType.Item | e.Item.ItemType = ListItemType.AlternatingItem) DropDownList ddlEquipmentType_temp = e.Item.FindControl(ddlEquipmentType) as DropDownList; string sqlstr = select

35、 distinct b.TypeId,b.EquipmentName + _ + b.EquipmentType as EquipmentName_EquipmentType from EMS_EquipmentInfo a join EMS_EquipmentType b on a.TypeId = b.TypeId and b.Status = 1 order by EquipmentName_EquipmentType; DataSet ds = DBUtility.DbHelperSQL.Query(sqlstr); ddlEquipmentType_temp.DataTextFiel

36、d = EquipmentName_EquipmentType; ddlEquipmentType_temp.DataValueField = TypeId; ddlEquipmentType_temp.DataSource = ds; ddlEquipmentType_temp.DataBind(); ddlEquipmentType_temp.SelectedValue = (e.Item.FindControl(lblEquipmentType) as System.Web.UI.WebControls.Label).Text; DropDownList ddlStation_temp

37、= e.Item.FindControl(ddlStation) as DropDownList; string sqlstr2 = select NodeId,Line + _ + StationName as Line_StationName from V_Stations where status=1 order by Line_StationName; DataSet ds2 = DBUtility.DbHelperSQL.Query(sqlstr2); ddlStation_temp.DataTextField = Line_StationName; ddlStation_temp.

38、DataValueField = NodeId; ddlStation_temp.DataSource = ds2; ddlStation_temp.DataBind(); ddlStation_temp.SelectedValue = (e.Item.FindControl(lblStation) as System.Web.UI.WebControls.Label).Text; TextBox txtEquIds = e.Item.FindControl(txtEquipmentIds) as TextBox; txtEquIds.Attributes.Add(readonly, true

39、); if (RequestBusinessNo != null) (e.Item.FindControl(btnAddRow) as System.Web.UI.WebControls.Button).Visible = false; (e.Item.FindControl(btnDeleteRow) as System.Web.UI.WebControls.Button).Visible = false; string businessNo = RequestBusinessNo.ToString(); bool IsApplyUser = Is_ApplyUser(Sessioncurr

40、entUserID.ToString(), businessNo, EMS_EquipmentRequest, Requester);/是否为申请人本人 if (IsApplyUser = true) string requestStatus = HttpUtility.UrlDecode(RequestRequestStatus.ToString(), System.Text.Encoding.UTF8);/申请单的当前状态 if (requestStatus = 草稿 | requestStatus = 退回) (e.Item.FindControl(btnAddRow) as Syste

41、m.Web.UI.WebControls.Button).Visible = true; (e.Item.FindControl(btnDeleteRow) as System.Web.UI.WebControls.Button).Visible = true; else bool IsCurrentAppprovaler = Is_CurrentAppprovaler(SessioncurrentUserID.ToString(), businessNo);/是否为当前能做审批的人 if (IsCurrentAppprovaler = true) string sql = SELECT TO

42、P 1 LayerName from EMS_Approvaler where BussinessNo= + businessNo + + AND ApprovalStatus=N ORDER BY AppSequence ; DataTable dt = DBUtility.DbHelperSQL.Query(sql).Tables0; if (dt.Rows.Count != 0 dt.Rows0LayerName.ToString() = 资产管理员) string ReqNum = (e.Item.FindControl(txtReqEquipmentNum) as TextBox).Text.Trim(); txtEquIds.Attributes.Add(onclick, OpenWindow( + txtEquIds.ClientID + , + ddlEquipmentType_temp.Sel

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1