Repeater动态绑定数据

一、我的例子:(见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\"  οnmοuseοver=\"overColor(this)\" οnmοuseοut=\"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\"  οnmοuseοver=\"overColor(this)\" οnmοuseοut=\"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='' οnclick='return confirm(\"真的要删除?不可恢复!\");'>删除</a> <a href='?action=sc&&classid =" + dr["id"].ToString() + " '>生成</a>";
strchar += "<tr οnmοuseοver=this.bgColor='#EBFFDC'; οnmοuseοut=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='' οnclick='return confirm(\"真的要删除?不可恢复!\");'>删除</a> <a href='?action=sc&&classid =" + dro["id"].ToString() + " '>生成</a>";
strchar += "<tr οnmοuseοver=this.bgColor='#EBFFDC'; οnmοuseοut=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




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值