none
asp.net按行遍历数据怎么做 RRS feed

  • 问题

  • 我现在的做法是按列遍历数据,谁知道怎么按行遍历数据,还有一种是自由格式遍历,该怎么做,能给串相关代码吗,我的部分代码如下
    asp.net
        <asp:DataGrid
          ID="Content"
          AutoGenerateColumns="false"
          BorderStyle="Solid"
          BorderWidth="1px"
          BorderColor="#FFFFFF"
          HeaderStyle-BackColor="#EF7D00"
          BackColor="#FFFFFF"
          AlternatingItemStyle-BackColor="#ecf9ff"
          Width="100%"
          Runat="Server">
          <Columns>
            <asp:TemplateColumn
                HeaderText="Title"
                ItemStyle-HorizontalAlign="Center"
                HeaderStyle-HorizontalAlign="Center">
                <itemTemplate>
                <a href="editNews.aspx?Edit=<%#DataBinder.Eval(Container.DataItem, "ID")%>"><%#DataBinder.Eval(Container.DataItem, "Title")%></a>
                </itemTemplate>
            </asp:TemplateColumn>
          </Columns>
        </asp:DataGrid>


    c#
            OleDbConnection conNewsData;
            OleDbCommand cmdSelectDB;
            OleDbDataReader dtrArticleData;

            conNewsData = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=" + HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["mdbPath"]));
            conNewsData.Open();
            cmdSelectDB = new OleDbCommand("SELECT * FROM News", conNewsData);
            dtrArticleData = cmdSelectDB.ExecuteReader();
            Content.DataSource = dtrArticleData;
            Content.DataBind();
            conNewsData.Close();
    2009年11月15日 4:05

答案

  • 用rowdatabound事件 就是循环遍历
    • 已标记为答案 KeFang Chen 2009年11月18日 2:15
    2009年11月15日 7:45
  • <%@ Page Language="C#" EnableViewState="true" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
      // 计算数据,完全可以从数据看取得
      System.Data.DataView CreateDataSourceByXianhuiMeng()
      {
        System.Data.DataTable dt = new System.Data.DataTable();
        System.Data.DataRow dr;
        dt.Columns.Add(new System.Data.DataColumn("id", 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 * i;
          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;
      }
    
      protected void Page_Load(object sender, EventArgs e)
      {
    
        if (!Page.IsPostBack)
        {
          Content.DataSource = CreateDataSourceByXianhuiMeng();
          Content.DataBind();
        }
      }
    
    
      protected void Delete_Click(object sender, EventArgs e)
      {
        //遍历方法:
        foreach (DataGridItem chkboxDataGridItem in Content.Items)
        {         
            string strNewsId1 = ((Label)(chkboxDataGridItem.FindControl("NewsId"))).Text;
            string strName = Content.Items[chkboxDataGridItem.DataSetIndex].Cells[2].Text;
            Response.Write("<li>方法1:strNewsId = " + strNewsId1 + " 方法二:学生姓名=" + strName);
        }
      }
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
    </head>
    <body>
      <form id="form1" runat="server">
      <asp:DataGrid ID="Content" runat="server" AutoGenerateColumns="true" DataKeyField="id">
        <Columns>
          <asp:TemplateColumn HeaderText="Select" ItemStyle-Width="80" ItemStyle-HorizontalAlign="Center"
            HeaderStyle-HorizontalAlign="Center">
            <ItemTemplate>
              <asp:CheckBox ID="Select" runat="server" />
              <asp:Label ID="NewsId" Text='<%#DataBinder.Eval(Container.DataItem, "id")%>'
                runat="server" />
            </ItemTemplate>
          </asp:TemplateColumn>
        </Columns>
      </asp:DataGrid>
      <asp:Button ID="Button1" runat="server" OnClick="Delete_Click" Text="测试" />
      </form>
    </body>
    </html>
    

    【孟子E章】
    • 已标记为答案 KeFang Chen 2009年11月18日 2:15
    2009年11月15日 10:18
    版主

全部回复

  • 用rowdatabound事件 就是循环遍历
    • 已标记为答案 KeFang Chen 2009年11月18日 2:15
    2009年11月15日 7:45
  • <%@ Page Language="C#" EnableViewState="true" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
      // 计算数据,完全可以从数据看取得
      System.Data.DataView CreateDataSourceByXianhuiMeng()
      {
        System.Data.DataTable dt = new System.Data.DataTable();
        System.Data.DataRow dr;
        dt.Columns.Add(new System.Data.DataColumn("id", 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 * i;
          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;
      }
    
      protected void Page_Load(object sender, EventArgs e)
      {
    
        if (!Page.IsPostBack)
        {
          Content.DataSource = CreateDataSourceByXianhuiMeng();
          Content.DataBind();
        }
      }
    
    
      protected void Delete_Click(object sender, EventArgs e)
      {
        //遍历方法:
        foreach (DataGridItem chkboxDataGridItem in Content.Items)
        {         
            string strNewsId1 = ((Label)(chkboxDataGridItem.FindControl("NewsId"))).Text;
            string strName = Content.Items[chkboxDataGridItem.DataSetIndex].Cells[2].Text;
            Response.Write("<li>方法1:strNewsId = " + strNewsId1 + " 方法二:学生姓名=" + strName);
        }
      }
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
    </head>
    <body>
      <form id="form1" runat="server">
      <asp:DataGrid ID="Content" runat="server" AutoGenerateColumns="true" DataKeyField="id">
        <Columns>
          <asp:TemplateColumn HeaderText="Select" ItemStyle-Width="80" ItemStyle-HorizontalAlign="Center"
            HeaderStyle-HorizontalAlign="Center">
            <ItemTemplate>
              <asp:CheckBox ID="Select" runat="server" />
              <asp:Label ID="NewsId" Text='<%#DataBinder.Eval(Container.DataItem, "id")%>'
                runat="server" />
            </ItemTemplate>
          </asp:TemplateColumn>
        </Columns>
      </asp:DataGrid>
      <asp:Button ID="Button1" runat="server" OnClick="Delete_Click" Text="测试" />
      </form>
    </body>
    </html>
    

    【孟子E章】
    • 已标记为答案 KeFang Chen 2009年11月18日 2:15
    2009年11月15日 10:18
    版主