【发布时间】: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 并使用<asp:BoundField定义 GridView 中的列...并绑定通过GridView1.DataSource = dt; GridView1.DataBind();将数据表添加到 GridView -
但我需要将列从数据库添加到网格视图...如果我使用 gridview1.datasource 它不会按我的意愿工作。@ChetanRanpariya
-
哦 tnx 我会试试看(自动生成)@ChetanRanpariya
标签: c# asp.net gridview datatable webforms