日期:2014-05-17  浏览次数:20515 次

Repeater 如何动态生成?

             <table width="100%" align="center" cellpadding="1" cellspacing="1" bgcolor="#000000" class="tablebody1" >
             <asp:Repeater ID="rptEData" runat="server">
               <ItemTemplate>
                  <tr bgcolor="#F6F7E1">
                    <td height="21" class="forumRow">                   
                    <%#SetTableTDTxt(Eval("LayerNumb").ToString(), Eval("E1").ToString(),"E1".ToString())%>                 
                    </td>                                         
                  </tr>
               </ItemTemplate>
             </asp:Repeater>


如何把上面代码写到后台去呢?其中SetTableTDTxt是函数。

------解决方案--------------------
拼接table


先取出datatable dt,然后循环dt
stringbuilder sb=new  ..()
for(int i=0;i<dt.rows.count;i++)
{
  sb="<tr><td>"+dt.rows[i]["id"]+"</td></tr>"
}
然后输出到前台页面。
可以用public string strsb
或者 fronttabel.InnerHtml=sb.tosting();
------解决方案--------------------
楼主  这就是repeater的实现原理 



不要再挣扎了
------解决方案--------------------
引用:
一个个单元格循环会很慢的,我想在.cs里写Repeater,怎么写呢?


一个个单元格循环怎么慢了??


int columnCount=dt.Columns.Count;//得到你数据源中的列数
stringbuilder sb=new  stringbuilder()
for(int i=0;i<dt.rows.count;i++)
{
  for(int j=0;i<coulmnCount;j++)
  {
      sb.Append("<tr><td>"+dt.rows[i][j]+"</td></tr>");
   }
}


这样不是可以把你的数据源里面的东西全部拿出来吗
------解决方案--------------------

for(int j=0;i<coulmnCount;j++)
  {
      sb.Append("<tr><td>"+dt.rows[i][j]+"</td></tr>");
   }

改成这个

sb.Append("<tr>");
for(int j=0;i<coulmnCount;j++)
  {
      sb.Append("<td>"+dt.rows[i][j]+"</td>");