首页 > 解决方案 > 我想在页面加载事件中从数据表向 gridview 添加列:

问题描述

我尝试从数据表向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();

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

标签: c#asp.netgridviewdatatablewebforms

解决方案


我在下面尝试过

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;
                }
            }
        }
    }
}

推荐阅读