我有以下来自查询的格式结果集,
我希望使用数据表或Gridview中的任何其他选项以以下格式显示以上查询结果。
有人可以帮帮我吗。
最佳答案
付款人名单不固定。此付款人取决于数量
系统中可用的付款人。
首先,所有尝试使用枢轴列从数据库检索数据。
SQL DEMO
然后使用该数据动态绑定GridView
。
根据动态创建的列将网格与TemplateField
绑定:
protected void bindgrid()
{
con.Open();
using (SqlDataAdapter sqd = new SqlDataAdapter("selectdata", con)) // here selectdata is my stored procedure in SQL Server
{
DataTable dt = new DataTable();
sqd.Fill(dt);
ViewState["data"] = dt;
for (int j = 1; j < dt.Columns.Count; j++)
{
TemplateField tfield = new TemplateField();
tfield.HeaderText = "Payers"+j;
grid1.Columns.Add(tfield);
}
grid1.DataSource = dt;
grid1.DataBind();
}
con.Close();
}
将CheckBox绑定到值为1,0或为null的列
protected void updategrid()
{
for(int k = 0; k < grid1.Rows.Count; k++)
{
DataTable dtl = (DataTable)ViewState["data"];
for (int j = 1; j < dtl.Columns.Count; j++)
{
if (dtl.Rows[k][j].ToString() == "1")
{
CheckBox ch = new CheckBox();
ch.ID = "checkbox" + j;
ch.Checked = true;
grid1.Rows[k].Cells[j].Controls.Add(ch);
}
else if (dtl.Rows[k][j].ToString() == "0" || dtl.Rows[k][j].ToString() == "" || dtl.Rows[k][j].ToString() == null)
{
CheckBox ch = new CheckBox();
ch.ID = "checkbox" + j;
ch.Checked = false;
grid1.Rows[k].Cells[j].Controls.Add(ch);
}
}
}
}