将数据绑定到网格视图

时间:2015-09-15 10:13:29

标签: mysql asp.net .net gridview c#-3.0

我在查询中有以下格式结果集,

enter image description here

我希望使用datatable或Gridview中的任何其他选项以上面的格式显示上面的查询结果。

enter image description here

有人可以帮助我。

1 个答案:

答案 0 :(得分:2)

  

付款人名单不固定。这个付款人的数量取决于   系统中可用的付款人。

首先尝试使用数据透视表从数据库中检索数据。 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);
                }
            }
        }
    }

Output Screen Short