楼上的。
以Repeater控件为例,要动态改变<ItemTemplate>的内容怎么实现呢?
在页面中嵌入判断就可以了,那在cs中呢?是不是有个属性来设置?

解决方案 »

  1.   

    把所有的东西都写在一个CS文件中 以下是一个论坛源码using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System;
    using System.Data.OleDb;
    using System.Data;
    using System.Collections;
    using System.Web.UI.HtmlControls;
    using System.Text.RegularExpressions;
    using System.Web.Caching;
    namespace huang {
    //------------------------index.aspx------------------------------------------------  
    public class index : Page{
    public OleDbConnection MyConn;
    public DateTime n1 ;
    public DateTime n2 ;
    public TimeSpan n3 ;
    public OleDbDataReader dr_Index;
    public String Fid1;
    public string sql_Index;
    public void Page_Load(Object src,EventArgs e)
    {
    DateTime now= DateTime.Now;
    n1= DateTime.Now;//&acute;&acute;&frac12;¨&Aacute;&not;&frac12;&Oacute;
    gong cc= new gong();
    MyConn=cc.qidong();
    cksub();
    OleDbCommand com_TopicTotal = new OleDbCommand(sql_Index,MyConn);
    dr_Index=com_TopicTotal.ExecuteReader();
    }
    public void cksub(){
    if (Request.QueryString["Fid1"]==null){
    sql_Index = "Select TopicTotal,id,Fid1,Fid2,Fid1Name,Fid2Name,Fimg,Des,ban,ReplyTotal  from  state order by Fid1  asc ";
    }
    else {
    Fid1=Request.QueryString["Fid1"].ToString();
    sql_Index = "Select TopicTotal,id,Fid1,Fid2,Fid1Name,Fid2Name,Fimg,Des,ban,ReplyTotal  from  state where Fid1="+Fid1+" order by Fid1  asc ";
    }}
    public void Page_Unload(Object src,EventArgs e)
    {
    MyConn.Close();
    }                }
      

  2.   

    //--------------------------list.aspx----------------------------------------------     
    public class list : Page{
    public Repeater score;
    public OleDbConnection MyConn;
    public int PageSize=20;//&Atilde;&iquest;&Ograve;&sup3;&frac14;&Ccedil;&Acirc;&frac14;&Ecirc;&yacute;&iquest;&Eacute;&Ograve;&Ocirc;×&Ocirc;&frac14;&ordm;&ETH;&THORN;&cedil;&Auml;
    public int CurrentPage;//
    public int TopicTotal;//&sup1;&sup2;&frac14;&AElig;&frac14;&Ccedil;&Acirc;&frac14;&Ecirc;&yacute;&Auml;&iquest;
    public String Fid1;
    public String Fid2;
    public String Table_Topic;
    public String Fid1Name;
    public String Fid2Name;
    public string Noti;
    public DateTime n1 ;
    public DateTime n2 ;
    public TimeSpan n3 ;
    public string ban;
    public OleDbDataReader dr_TopicTotal;
    public void Page_Load(Object src,EventArgs e)
    {
    DateTime now= DateTime.Now;
    n1= DateTime.Now;
    Fid1=Request.QueryString["Fid1"];
    Fid2=Request.QueryString["Fid2"];
    Table_Topic=Fid1+"Topic"+Fid2;
    if (Request.QueryString["page"]!=""){
    CurrentPage=Int32.Parse(Request.QueryString["page"].ToString());
                                        }
      else
                                        {
      CurrentPage=1;
                                        }
     //&acute;&acute;&frac12;¨&Aacute;&not;&frac12;&Oacute;
     gong cc= new gong();
     MyConn=cc.qidong();
     getsubinfo();
     ListBind();
     MyConn.Close();
     n2= DateTime.Now;
     n3=n2-n1; 
     MyConn.Close();
     }
    ICollection CreateSource()
    {
     int StartIndex;
     StartIndex = (CurrentPage)*PageSize;
     string strSel = "select top "+StartIndex.ToString()+" Expression,TopicId,Topic,Postuser,LastReply,DateAndTime from "+Table_Topic+"  order by DateAndTime desc ";
     DataSet ds = new DataSet();
     OleDbDataAdapter MyAdapter = new OleDbDataAdapter(strSel,MyConn);
     MyAdapter.Fill(ds,StartIndex-PageSize,PageSize,Table_Topic);
     
     return ds.Tables[Table_Topic].DefaultView;}
    public void ListBind()
    {
     score.DataSource =CreateSource();
     score.DataBind();
    }
    public void getsubinfo(){
       string sql_TopicTotal = "Select TopicTotal,id,Fid1,Fid2,Fid1Name,Fid2Name,ban,Noti   from  state where Fid1="+Fid1+" and Fid2="+Fid2;
       OleDbCommand com_TopicTotal = new OleDbCommand(sql_TopicTotal,MyConn);
       dr_TopicTotal=com_TopicTotal.ExecuteReader();
       while(dr_TopicTotal.Read())
        {
         TopicTotal=(int)dr_TopicTotal["TopicTotal"];
         Fid1Name=dr_TopicTotal["Fid1Name"].ToString();
         Fid2Name=dr_TopicTotal["Fid2Name"].ToString();
         ban=dr_TopicTotal["ban"].ToString();
         Noti=dr_TopicTotal["Noti"].ToString();
        }
    dr_TopicTotal.Close();
                          }
       
                              }   
      

  3.   

    看一下Microsoft Visual Studio .NET 2003\Enterprise Samples\Duwamish 7.0 VB(CS)的例子吧,参考它代码分离的方法.
      

  4.   

    是你DataGrid等控件用的不太清通。建议看看<<构建Web解决方案-应用asp.net和ado.net>>
      

  5.   

    楼上的我看明白了,这只是进行简单的数据绑定。
    而我要的自定义每一个模板:HeaderTemplate,ItemTemplate.....,这个怎么在cs代码中实现呢?如果是在页面中,直接判断就可以了。
      

  6.   

    正如楼上所说,以前只会些HTML和javascript,虽然学C#有一段时间了,但是,最近才开始学asp.net。
      

  7.   

    你可以动态生成模板:http://www.dotnetbips.com/displayarticle.aspx?id=85
      

  8.   

    在〈asp.net高级编程>上面也有动态布局的内容,我先自己做做看。
    有问题再问大家:)
      

  9.   

    看一下Microsoft Visual Studio .NET 2003\Enterprise Samples\Duwamish 7.0 VB(CS)的例子吧,参考它代码分离的方法.老实说~~我不知道从那个地方开始看啊~~谁能指点一二~~~谢谢~~
      

  10.   

    晕倒,Microsoft Visual Studio .NET 2003\Enterprise Samples\Duwamish 7.0 VB
    我指的是你.net的安装路径