【发布时间】:2014-11-06 03:59:42
【问题描述】:
我正在使用 GridView 并尝试将数据绑定到此 GridView,但我遇到了不寻常的问题,这是我的代码:
GridView的绑定方法:
private void BindDataSource()
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["constr"].ConnectionString);
string queryString6 = "";
string items = "";
if (lb_add_col.Items.Count > 0)
{
foreach (ListItem listItem in lb_add_col.Items)
{
if (listItem.Selected == true)
{
items += listItem.Text + ",";
}
}
}
items = items.TrimEnd(',');
queryString6 = "SELECT "+items+" from " +ddl_tables.Items[0].Text;
System.Data.SqlClient.SqlCommand sqlCmd6 = new System.Data.SqlClient.SqlCommand(queryString6, con);
System.Data.SqlClient.SqlDataAdapter dataAdapter6 = new System.Data.SqlClient.SqlDataAdapter(sqlCmd6);
System.Data.DataSet dataSet6 = new System.Data.DataSet();
dataAdapter6.Fill(dataSet6);
string[] columns = items.Split(',');
for (int i = 0; i < dataSet6.Tables[0].Rows.Count; i++)
{
order.Add(new Orders(columns.Contains("id") ? Convert.ToInt32(dataSet6.Tables[0].Rows[i]["id"]) : 0, columns.Contains("name") ? dataSet6.Tables
[0].Rows[i]["name"].ToString() : "N/A", columns.Contains("month") ? dataSet6.Tables[0].Rows[i]["month"].ToString() : "N/A", columns.Contains("effiecency") ? Convert.ToInt32(dataSet6.Tables[0].Rows[i]
["effiecency"]) : 0, columns.Contains("latitude") ? Convert.ToInt32(dataSet6.Tables[0].Rows[i]["latitude"]) : 0, columns.Contains("longitude") ? Convert.ToInt32(dataSet6.Tables[0].Rows[i]
["longitude"]) : 0));
}
this.OrdersGrid.DataSource = order;
this.OrdersGrid.DataBind();
}
从上面的方法顺序显示数据但 GridView 没有绑定。
我正在调用此方法的按钮单击事件:
protected void btn_add_col_Click(object sender, EventArgs e)
{
Syncfusion.JavaScript.Models.Column sd;
foreach (ListItem listItem in lb_add_col.Items)
{
if (listItem.Selected == true)
{
sd = new Syncfusion.JavaScript.Models.Column();
if (listItem.Text == "id")
{
sd.IsPrimaryKey = true;
}
sd.Field = listItem.Text;
sd.HeaderText = listItem.Value;
sd.Width = 90;
sd.TextAlign = Syncfusion.JavaScript.TextAlign.Right;
this.OrdersGrid.Columns.Add(sd);
}
}
BindDataSource();
}
【问题讨论】:
-
你有没有调试过你的代码,你的“订单”在 for 循环之后包含了一些值?
-
是的,我已经检查过了,它总是在循环后显示一些值,但是当我将此“订单”分配为 DataSource 时,GridView 没有绑定。
-
订单是您的通用列表吗?您在哪里调用此代码?页面加载时?
-
yes order 是通用列表,我已经创建了一个绑定 GridView 的方法,我在 Button click 事件上调用了这个方法。
-
您是否检查了断点以确保数据来自数据库?
标签: c# asp.net gridview data-binding syncfusion