日期:2014-05-19  浏览次数:20748 次

100分求高难度问题,动态创建的DataList怎么控制好位置,帮顶有分
就是我创建DataList的时候,我在前台是使用
<asp:Repeater   id= "Repeater1 "   runat= "server "> <ItemTemplate> <table     border= "0 "     cellpadding= "0 "   cellspacing= "3 "> <tr> <td> <%#RepalceString(DataBinder.Eval(Container.DataItem,   "ST_newscontent ").ToString())%> </td>
</tr> </table> </ItemTemplate> </asp:Repeater>
来绑定数据的
而 <%#RepalceString(DataBinder.Eval(Container.DataItem,   "ST_newscontent ").ToString())%> 的意思是绑定的内容来自st_newscontent这个字段.
然后RepalceString()这个函数是我自己在后台里写的,其它就有动态创建
DataList的语句.然而我创建出来DataList,他不能在我想要的地方显示,而在最下面显示出来
如何我的本意是:aaa
                              bbb
                              CCC
                              <动态创建DataList,长100px   高80px>
                              DDD
                              EEE
                              FFF
他出来的效果却是:
                              aaa
                              bbb
                              CCC
                              DDD
                              EEE
                              FFF
                              <动态创建DataList,长100px   高80px>
   
也就是说他把所有要加载的东东先加载,然后再来创建我的DataList,有什么办法解决没?
昨天跟我上司说了一下,他说可以在后台保存的时候先创建一个容器控件来保存(例如Table)
要创建DataList的地方,然后再在前台动态加载的时候把DataList加载到容器里面去.
可是当我在测试使用Table   tab1   =   (Table)this.Repeater1.FindControl( "table1 ");
时发现tab1为空(注:table1为id值,这里我在后台保存时建立的)
所以也没能解决问题,能否告诉我一下怎么解决啊.

------解决方案--------------------
顶吧
------解决方案--------------------
直接拉里面个DataList得了,用的这么麻烦么
------解决方案--------------------
如果是VS2005的话,直接拉一个placeholder
然后 PlaceHolder.controls.add(repeater)
------解决方案--------------------
先用数据模拟下DataList的布局 再写代码
------解决方案--------------------
Table 或PlaceHolder 肯定要有runat= "server "的
而且它是在某个ItemTemplate里,所以不能直接使用Table tab1 = (Table)this.Repeater1.FindControl( "table1 ");之类
应该在DataBound的事件里写
------解决方案--------------------
RepalceString()这个函数的代码贴上来看一下!
------解决方案--------------------