【问题标题】:i want to add columns to gridview from data table in page load event:我想在页面加载事件中从数据表向 gridview 添加列:
【发布时间】:2020-01-05 23:41:53
【问题描述】:

我尝试从数据表向 gridview 添加列(我从 sql 数据库填充它),我对其进行了调试,我的网格视图有列,但在 web 端它根本不显示我的网格视图。

            SqlConnection conn = new SqlConnection(
           new SqlConnectionStringBuilder()
           {
               DataSource = "HOSEIN-PC",
               InitialCatalog = "project Grid",
               UserID = "sa",
               Password = "fast"
           }.ConnectionString);
            conn.Open();
            //ستون جدول
            string SqlString = string.Format(@"select *
        from tbl_data ");
            SqlDataAdapter sda = new SqlDataAdapter(SqlString, conn);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            //GridView1.DataSource = dt;
            //GridView1.DataBind();

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                BoundField c = new BoundField();
                //GridView1.Columns.Add(dt.Rows[i]["DATA"].ToString());
                 // it doesnt work in webform so i try boundfield
                c.HeaderText = dt.Rows[i]["DATA"].ToString();
                c.DataField = dt.Rows[i]["ID"].ToString();
                GridView1.Columns.Add(c);
            }
            GridView1.DataBind();

            conn.Close();

似乎没问题我在网格视图中有列... 唯一的问题是当我执行它时,它不会在 web 端显示网格视图。

【问题讨论】:

  • 你需要在GridView1.DataBind();之前做GridView1.DataSource = dt;
  • 您不需要手动添加列...如果您想显示数据表的所有列,那么您只需将GridView的AutoGenerateColumns属性设置为false并将数据表绑定到GridView 通过做GridView1.DataSource = dt; GridView1.DataBind();
  • 如果您只想在 GridView 中显示 dataTable 中的特定列,那么您需要将 AutoGenerateColumns 属性设置为 false 并使用 &lt;asp:BoundField 定义 GridView 中的列...并绑定通过 GridView1.DataSource = dt; GridView1.DataBind(); 将数据表添加到 GridView
  • 但我需要将列从数据库添加到网格视图...如果我使用 gridview1.datasource 它不会按我的意愿工作。@ChetanRanpariya
  • 哦 tnx 我会试试看(自动生成)@ChetanRanpariya

标签: c# asp.net gridview datatable webforms


【解决方案1】:

下面我试过了

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1
{
    public partial class WebForm3 : System.Web.UI.Page
    {
        string customColumn = string.Empty;
        protected void Page_Load(object sender, EventArgs e)
        {
            customColumn = "AAA";
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            DataTable table = new DataTable();
            table.Columns.Add("Dosage", typeof(int));
            table.Columns.Add("Drug", typeof(string));
            table.Columns.Add("Patient", typeof(string));
            table.Columns.Add("Date", typeof(DateTime));

            // Here we add five DataRows.
            table.Rows.Add(25, "Indocin", "David", DateTime.Now);
            table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
            table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
            table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
            table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);


            //Add new column  in gridview if its not set true for autogenerare columns
            //BoundField test = new BoundField();
            //test.DataField = "Country";
            //test.HeaderText = "Country";
            //GridView1.Columns.Add(test);


            //add  new column for your custom variable to datasource
            table.Columns.Add(new DataColumn("Country"));


            GridView1.DataSource = table;
            GridView1.DataBind();

        }

        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                //putting data in column Conditionaly 
                if (Convert.ToDateTime(e.Row.Cells[3].Text)<DateTime.Now)
                {
                    e.Row.Cells[4].Text = customColumn;
                }
            }
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    • 1970-01-01
    • 2021-12-22
    • 2012-08-15
    • 1970-01-01
    相关资源
    最近更新 更多