您的位置:首页 > 其它

Repeater动态绑定数据

2014-01-15 17:48 176 查看
一、我的例子:(见SJTCMS/manage/report)

(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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: