Repeater动态绑定数据
2014-01-15 17:48
176 查看
一、我的例子:(见SJTCMS/manage/report)
(1)效果图
(2)前台代码:
(3)后台代码:
二、网上例子
(1)效果图
参考:http://www.cnblogs.com/qiancheng509/articles/1775600.html
(1)效果图
(2)前台代码:
<asp:Repeater runat="server" ID="rptReport"> <HeaderTemplate> <table id="tablist" width="98%" border="0" align="center" cellpadding="4" cellspacing="1" class="table"> </HeaderTemplate> <ItemTemplate> <%#((DataRowView)Container.DataItem)["Colum"]%> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater>
(3)后台代码:
/// <summary> /// 绑定RptReport /// </summary> /// <param name="strClass"></param> private void BindRptReport(string[] strClasses) { //如果没有选择栏目,则返回 if (strClasses==null || string.IsNullOrEmpty(strClasses[0])) { return; } string strDepartmentId = SJTSoft.CMS.Global.Current.UserInfo.DepartmentId; Department dme = dmeOperate.GetDepartment(Convert.ToInt32(strDepartmentId)); if (!string.IsNullOrEmpty(strDepartmentId)) { DataTable dt = news.GetReportTotalTable(strDepartmentId, strClasses, txtStartDate.Text, txtEndDate.Text); if (dt != null) { dt.Columns.Add("Colum", typeof(string)); string strchar = ""; string strHeader = "<tr class=\"TR_BG\"><td align=\"center\" valign=\"middle\" class=\"sysmain_navi\">单位</td>"; strchar += "<tr class=\"TR_BG_list\" onmouseover=\"overColor(this)\" onmouseout=\"outColor(this)\">"; strchar += "<td align=\"left\" valign=\"middle\" > " + dme.DepartmentName + "</td>"; for (int i = 0; i < strClasses.Length; i++) { if (string.IsNullOrEmpty(strClasses[i])) { break; } string strClassName = news.getClassName(strClasses[i]); strHeader+="<td align=\"center\" valign=\"middle\" class=\"sysmain_navi\">"+ strClassName + "报送" +"</td>"; strHeader += "<td align=\"center\" valign=\"middle\" class=\"sysmain_navi\">" +strClassName + "通过" + "</td>"; strchar += "<td align=\"center\" valign=\"middle\" >" + dt.Rows[0][strClassName + "报送"] + "</td>"; strchar += "<td align=\"center\" valign=\"middle\" >" + dt.Rows[0][strClassName + "通过"] + "</td>"; } strchar += "<td align=\"center\" valign=\"middle\" >" + dt.Rows[0]["报送总计"] + "</td>"; strchar += "<td align=\"center\" valign=\"middle\" >" + dt.Rows[0]["通过总计"] + "</td>"; strchar += "</tr>"; strchar += getchildDepartmentList(strDepartmentId, "", strClasses); strHeader += "<td align=\"center\" valign=\"middle\" class=\"sysmain_navi\">报送总计</td>"; strHeader += "<td align=\"center\" valign=\"middle\" class=\"sysmain_navi\">通过总计</td>"; strHeader += "</tr>"; dt.Rows[0]["Colum"] = strHeader+strchar; } rptReport.DataSource = dt; rptReport.DataBind(); } } /// <summary> /// 递归 /// </summary> /// <param name="departmentId"></param> /// <param name="sign"></param> /// <returns></returns> string getchildDepartmentList(string departmentId, string sign, string[] strClasses) { #region string strchar = ""; DataTable dt = dmeOperate.GetDepartMentContent(departmentId); sign += " "; string strImg = "<img src=\"../../sysImages/folder/tree_minusmiddle1.gif\" border=\"0\"> "; if (dt != null) { if (dt.Rows.Count > 0) { dt.Columns.Add("Colum", typeof(string)); for (int j = 0; j < dt.Rows.Count; j++) { strchar += "<tr class=\"TR_BG_list\" onmouseover=\"overColor(this)\" onmouseout=\"outColor(this)\">"; strchar += "<td align=\"left\" valign=\"middle\" >" + sign + dt.Rows[j]["departmentName"] + "</td>"; string strDepartmentIdTemp = dt.Rows[j]["departmentId"].ToString(); DataTable dtReprot = news.GetReportTotalTable(strDepartmentIdTemp, strClasses, txtStartDate.Text, txtEndDate.Text); for (int i = 0; i < strClasses.Length; i++) { if (string.IsNullOrEmpty(strClasses[i])) { break; } string strClassName = news.getClassName(strClasses[i]); strchar += "<td align=\"center\" valign=\"middle\" >" + dtReprot.Rows[0][strClassName + "报送"] + "</td>"; strchar += "<td align=\"center\" valign=\"middle\" >" + dtReprot.Rows[0][strClassName + "通过"] + "</td>"; } strchar += "<td align=\"center\" valign=\"middle\" >" + dtReprot.Rows[0]["报送总计"] + "</td>"; strchar += "<td align=\"center\" valign=\"middle\" >" + dtReprot.Rows[0]["通过总计"] + "</td>"; strchar += "</tr>"; strchar += getchildDepartmentList(strDepartmentIdTemp, sign, strClasses); dt.Rows[j]["Colum"] = strchar; } dt.Clear(); dt.Dispose(); } } return strchar; #endregion }
二、网上例子
(1)效果图
(2)前台: <asp:Repeater ID="Repeater1" runat="server"> <HeaderTemplate> <table border="0" align="center" cellpadding="3" cellspacing="1" class="table_b"> <tr> <td width="30" class="title_bg">ID</td> <td class="title_bg">名称</td> <td class="title_bg">排序</td> <td class="title_bg">管理</td> </tr> </HeaderTemplate> <ItemTemplate> <%#((DataRowView)Container.DataItem)["Colum"]%> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater>(3)后台:
public void ListControl_Bind(int n) { Cy.BLL.Class bll_Class = new Cy.BLL.Class(); DataTable dt = bll_Class.GetList("followid=0").Tables[0]; dt.Columns.Add("Operate", typeof(string));//操作 dt.Columns.Add("Colum", typeof(String));//在dt中增加字段名为Colum的列 if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dt.Rows[i]; string strchar = ""; dr["operate"] = "<a href='" + dr["id"].ToString() + "'>添加下级分类</a> <a href=''>编辑</a> <a href='' onclick='return confirm(\"真的要删除?不可恢复!\");'>删除</a> <a href='?action=sc&&classid =" + dr["id"].ToString() + " '>生成</a>"; strchar += "<tr onmouseover=this.bgColor='#EBFFDC'; onmouseout=this.bgColor='#ffffff'; bgcolor='#ffffff'>"; strchar += "<td align=\"center\">" + dr["id"].ToString() + "</td> "; strchar += "<td align=\"left\" >" + dr["title"].ToString() + "</td>"; strchar += "<td align=\"center\" height=\"25\">上升 下降</td>"; strchar += "<td align=\"center\" >" + dr["Operate"].ToString() + "</td>"; strchar += "</tr>"; Cy.BLL.Class bll_Classq = new Cy.BLL.Class(); strchar = InitChild(dr, strchar, bll_Classq, 2); dr["Colum"] = strchar; } } Repeater1.DataSource = dt; Repeater1.DataBind(); } private string InitChild(DataRow dr, string strchar, Cy.BLL.Class bll_Classq,int n) { DataTable dtt = bll_Classq.GetList("followid='" + dr["id"] + "'").Tables[0]; dtt.Columns.Add("Operate", typeof(string)); dtt.Columns.Add("Colum", typeof(String)); if (dtt.Rows.Count > 0) { string s = " "; for (int j = 1; j <= n; j++) { s += " "; } for (int k = 0; k < dtt.Rows.Count; k++) { DataRow dro = dtt.Rows[k]; string flag = "├"; if (dtt.Rows.Count == 1) { flag = "├"; } else { if (k == 0) { flag = "┌"; } if (k == dtt.Rows.Count - 1) { flag = "└"; } } dro["operate"] = "<a href='" + dro["id"].ToString() + "'>添加下级分类</a> <a href=''>编辑</a> <a href='' onclick='return confirm(\"真的要删除?不可恢复!\");'>删除</a> <a href='?action=sc&&classid =" + dro["id"].ToString() + " '>生成</a>"; strchar += "<tr onmouseover=this.bgColor='#EBFFDC'; onmouseout=this.bgColor='#ffffff'; bgcolor='#ffffff'>"; strchar += "<td align=\"center\">" + dro["id"].ToString() + "</td> "; strchar += "<td align=\"left\" >" + s + flag + dro["title"].ToString() + "</td>"; strchar += "<td align=\"center\" height=\"25\">上升 下降</td>"; strchar += "<td align=\"center\" >" + dro["Operate"].ToString() + "</td>"; strchar += "</tr>"; strchar = InitChild(dro, strchar, bll_Classq, n + 8); } } return strchar; }
参考:http://www.cnblogs.com/qiancheng509/articles/1775600.html
相关文章推荐
- 动态创建模板列并绑定数据(GridView,Repeater,DataGrid)
- 如何使用动态创建模板列并绑定数据(GridView,Repeater,DataGrid)
- Repeater 的操作,数据的显示,绑定,动态取控件中的值和Repeater1_ItemCommand事件的相关用法
- 动态创建Repeater,绑定数据
- Repeater 的操作,数据的显示,绑定,动态取控件中的值和Repeater1_ItemCommand事件的相关用法
- 动态创建模板列并绑定数据(GridView,Repeater,DataGrid)
- repeater控件动态数据绑定使用
- 如何使用动态创建模板列并绑定数据(GridView,Repeater,DataGrid)
- 如何使用动态创建模板列并绑定数据(GridView,Repeater,DataGrid)
- 数据库动态数据的处理+Repeater前台动态列的绑定
- ASP.NET 查询数据处理后动态创建DataTable并添加数据,绑定Repeater
- 动态创建模板列并绑定数据(GridView,Repeater,DataGrid)
- easyui combox数据的动态绑定
- 数据绑定--Repeater, DataList, or GridView?
- excel每一条数据 生成成一个word模板,(模板里面的字段需要动态的绑定excel属性)
- ASP.NET 2.0 的数据绑定控件概述与区别(GridView、DetailsView、FormView 、Repeater、DataList)
- GridView 数据绑定扩展-- 动态添加数据列,绑定方法
- 如何用XML数据绑定前台Repeater
- GridView 动态绑定数据,包括2个或者多个值
- 【JS】Knockout动态刷新及绑定数据