我有以下来自查询的格式结果集,

mysql - 将数据绑定(bind)到网格 View-LMLPHP

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

mysql - 将数据绑定(bind)到网格 View-LMLPHP

有人可以帮帮我吗。

最佳答案

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


首先,所有尝试使用枢轴列从数据库检索数据。
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);
                }
            }
        }
    }


mysql - 将数据绑定(bind)到网格 View-LMLPHP

09-25 18:07
查看更多