none
怎么让datalist中的SelectItemTemplate的内容显示? RRS feed

  • 问题

  • 我在ItemTemplate中点击一下一条记录,让它高亮的显示出来,是不是在SelectItemTemplate中显示啊?若是,我不知道怎么操作,请给我指导指导,谢谢拉!!!!
    2009年3月7日 1:29

答案

  • 设置SelectedIndex 属性,注意是在DataBind之前设置

    <%@ Page Language="C#" %> 
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
     
    <script runat="server">  
     
       
      ICollection CreateDataSourceByXianhuiMeng()  
      {  
        System.Data.DataTable dt = new System.Data.DataTable();  
        System.Data.DataRow dr;  
        dt.Columns.Add(new System.Data.DataColumn("学生班级", typeof(System.String)));  
        dt.Columns.Add(new System.Data.DataColumn("学生姓名", typeof(System.String)));  
        dt.Columns.Add(new System.Data.DataColumn("语文", typeof(System.Decimal)));  
        dt.Columns.Add(new System.Data.DataColumn("数学", typeof(System.Decimal)));  
        dt.Columns.Add(new System.Data.DataColumn("英语", typeof(System.Decimal)));  
        dt.Columns.Add(new System.Data.DataColumn("计算机", typeof(System.Decimal)));  
     
        for (int i = 0; i < 8; i++)  
        {  
          System.Random rd = new System.Random(Environment.TickCount * i); ;  
          dr = dt.NewRow();  
          dr[0] = "班级" + i.ToString();  
          dr[1] = "【孟子E章】" + i.ToString();  
          dr[2] = System.Math.Round(rd.NextDouble() * 100, 2);  
          dr[3] = System.Math.Round(rd.NextDouble() * 100, 2);  
          dr[4] = System.Math.Round(rd.NextDouble() * 100, 2);  
          dr[5] = System.Math.Round(rd.NextDouble() * 100, 2);  
          dt.Rows.Add(dr);  
        }  
        System.Data.DataView dv = new System.Data.DataView(dt);  
        return dv;  
      }  
     
      // 设置每页显示的行数    
      int TotalRowCount = 12;  
      // 自动填充的行数  
      int numCount = 0;  
      protected void Page_Load(object sender, EventArgs e)  
      {  
        if (!Page.IsPostBack)  
        {  
          DataList1.SelectedIndex = 2;  
          DataList1.DataSource = CreateDataSourceByXianhuiMeng();  
          DataList1.DataBind();  
     
        }  
      }  
    </script> 
     
    <html xmlns="http://www.w3.org/1999/xhtml">  
    <head runat="server">  
      <title></title>  
    </head> 
    <body> 
      <form id="form1" runat="server">  
      <asp:DataList ID="DataList1" runat="server">  
        <ItemTemplate> 
          <div style="background: #ddd">  
            <%#Eval("学生姓名")%></div>  
        </ItemTemplate> 
        <SelectedItemTemplate> 
          <div style="background: #f00">  
            <%#Eval("学生姓名")%></div>  
        </SelectedItemTemplate> 
      </asp:DataList> 
      </form> 
    </body> 
    </html> 
     

    孟宪会
    2009年3月7日 5:30
    版主

全部回复

  • 设置SelectedIndex 属性,注意是在DataBind之前设置

    <%@ Page Language="C#" %> 
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
     
    <script runat="server">  
     
       
      ICollection CreateDataSourceByXianhuiMeng()  
      {  
        System.Data.DataTable dt = new System.Data.DataTable();  
        System.Data.DataRow dr;  
        dt.Columns.Add(new System.Data.DataColumn("学生班级", typeof(System.String)));  
        dt.Columns.Add(new System.Data.DataColumn("学生姓名", typeof(System.String)));  
        dt.Columns.Add(new System.Data.DataColumn("语文", typeof(System.Decimal)));  
        dt.Columns.Add(new System.Data.DataColumn("数学", typeof(System.Decimal)));  
        dt.Columns.Add(new System.Data.DataColumn("英语", typeof(System.Decimal)));  
        dt.Columns.Add(new System.Data.DataColumn("计算机", typeof(System.Decimal)));  
     
        for (int i = 0; i < 8; i++)  
        {  
          System.Random rd = new System.Random(Environment.TickCount * i); ;  
          dr = dt.NewRow();  
          dr[0] = "班级" + i.ToString();  
          dr[1] = "【孟子E章】" + i.ToString();  
          dr[2] = System.Math.Round(rd.NextDouble() * 100, 2);  
          dr[3] = System.Math.Round(rd.NextDouble() * 100, 2);  
          dr[4] = System.Math.Round(rd.NextDouble() * 100, 2);  
          dr[5] = System.Math.Round(rd.NextDouble() * 100, 2);  
          dt.Rows.Add(dr);  
        }  
        System.Data.DataView dv = new System.Data.DataView(dt);  
        return dv;  
      }  
     
      // 设置每页显示的行数    
      int TotalRowCount = 12;  
      // 自动填充的行数  
      int numCount = 0;  
      protected void Page_Load(object sender, EventArgs e)  
      {  
        if (!Page.IsPostBack)  
        {  
          DataList1.SelectedIndex = 2;  
          DataList1.DataSource = CreateDataSourceByXianhuiMeng();  
          DataList1.DataBind();  
     
        }  
      }  
    </script> 
     
    <html xmlns="http://www.w3.org/1999/xhtml">  
    <head runat="server">  
      <title></title>  
    </head> 
    <body> 
      <form id="form1" runat="server">  
      <asp:DataList ID="DataList1" runat="server">  
        <ItemTemplate> 
          <div style="background: #ddd">  
            <%#Eval("学生姓名")%></div>  
        </ItemTemplate> 
        <SelectedItemTemplate> 
          <div style="background: #f00">  
            <%#Eval("学生姓名")%></div>  
        </SelectedItemTemplate> 
      </asp:DataList> 
      </form> 
    </body> 
    </html> 
     

    孟宪会
    2009年3月7日 5:30
    版主
  •  添加选择列

    <asp:GridView ID="GridView1" runat="server" DataSourceID="ObjectDataSource1">

    <Columns>

    <asp:CommandField ShowSelectButton="True" />

    </Columns>

    </asp:GridView>

     

    你也可以把选择列转化为模板列


    就算首页不能显示30天内排行榜 回答总数也快接近top10了 5555
    努力奋斗 重回首页排行榜!!! 55555
    有原则的回答问题: 不懂的不去装懂,别人回答得很完整的,没有需要补充的不去蹭分。
    2009年3月9日 4:22