如下,我在reapter1控件中加入了<%=htmlCode%>,用于将读取的html代码读入 <asp:repeater id="Repeater1" runat="server">
<ItemTemplate>
<%=htmlCode%>
</ItemTemplate>
</asp:repeater>下面是读取文本文件中的html到变量htmlCode中的函数 private void readHtmlCode()
{
string filePath = Server.MapPath("~/appData/newsList.txt");
htmlCode = appCode.commonFunction.readTextFile(filePath);
this.Label1.Text = this.htmlCode.GetTypeCode().ToString();
}文本文件中的代码如下:<div>
<%#DataBinder.Eval(Container.DataItem,"adid")%>
<%#DataBinder.Eval(Container.DataItem,"adname")%>
<%#DataBinder.Eval(Container.DataItem,"adpwd")%>
<%#DataBinder.Eval(Container.DataItem,"adtel")%>
</div>然后我想通过后台编程,实现动态的控制reapter控件显示数据,下面是绑定代码 private void bindData()
{
if(sqlStr!="")
{
this.Label1.Text = this.sqlStr;
DataTable dt = appCode.execSQL.execSQLreader(this.sqlStr);
this.Repeater1.DataSource = dt;
this.Repeater1.DataBind();
}
}但是,数据根本就没有绑定上去,在源文件中只增加了下面的代码 <div>
<%#DataBinder.Eval(Container.DataItem,"adid")%>
<%#DataBinder.Eval(Container.DataItem,"adname")%>
<%#DataBinder.Eval(Container.DataItem,"adpwd")%>
<%#DataBinder.Eval(Container.DataItem,"adtel")%>
</div>

<div>
<%#DataBinder.Eval(Container.DataItem,"adid")%>
<%#DataBinder.Eval(Container.DataItem,"adname")%>
<%#DataBinder.Eval(Container.DataItem,"adpwd")%>
<%#DataBinder.Eval(Container.DataItem,"adtel")%>
</div>

解决方案 »

  1.   

    将htmlCode  设为全局共有的  :public string="";
      

  2.   

    至于repeater中不显示数据,先确保sql语句已经运行,即,dt中有了数据
    如果dt中有了数据,那就确保页面的html代码中<%#DataBinder.Eval(Container.DataItem,"adtel")%>
     各个字段正确
      

  3.   

    看你代码没有错误,使用断点 f11逐语句看看,是不是数据库查询的问题 ,确保sqlStr不玩空,并且语句正确
      

  4.   

    对了
    <div>
        <%#DataBinder.Eval(Container.DataItem,"adid")%>
        <%#DataBinder.Eval(Container.DataItem,"adname")%>
        <%#DataBinder.Eval(Container.DataItem,"adpwd")%>
        <%#DataBinder.Eval(Container.DataItem,"adtel")%>
    </div>是要放到repeater1里面的 
    <ItemTemplate>
    <%#DataBinder.Eval(Container.DataItem,"adid")%>
        <%#DataBinder.Eval(Container.DataItem,"adname")%>
        <%#DataBinder.Eval(Container.DataItem,"adpwd")%>
        <%#DataBinder.Eval(Container.DataItem,"adtel")%></ItemTemplate>
    至于htmlCode 可以放到<HeaderTemplate></HeaderTemplate>里面
      

  5.   

    <asp:repeater id="Repeater1" runat="server">
         <HeaderTemplate        
            <%=htmlCode%>
         </HeaderTemplate>
         <ItemTemplate>
            <%#DataBinder.Eval(Container.DataItem,"adid")%>
            <%#DataBinder.Eval(Container.DataItem,"adname")%>
            <%#DataBinder.Eval(Container.DataItem,"adpwd")%>
            <%#DataBinder.Eval(Container.DataItem,"adtel")%>
         </ItemTemplate>
    </asp:repeater>
      

  6.   

    谢谢
    已经是public了,要不然生成后的html源文件也就不会有html代码的增加了我想几位楼上的也许可能还没理解我的意思,平常我们如果使用repeater控件的话,每使用一个就必须拖一个repeater控件到页面上,然后加入相应的html代码,再进行后台编程
    但是我觉得这样太麻烦了,所以我制作了一个web用户控件,里面有一个repeater控件,我通过使用<%=htmlCode%>变量可以将不同的html代码加入到reapter控件的html代码中,这样我编程时就可以选定不同显示方式,这样即增加了灵活性,也增加了代码了复用率
    现在的情况是,这样直接在后台编写是否可行,还是必须通过StreamWriter来修改源文件??