首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

如何从cs页给aspx页的GridView传值(代码写到cs页)

2012-12-15 
怎么从cs页给aspx页的GridView传值(代码写到cs页)GridView的列是动态生成的,所以GridView要显示的东西也是

怎么从cs页给aspx页的GridView传值(代码写到cs页)
GridView的列是动态生成的,所以GridView要显示的东西也是变的,怎么在cs页控制GridView的显示内容
(怎么从cs页给aspx页的GridView传值(代码写到cs页))
[最优解释]


前台:
    <asp:GridView ID="gv" runat="server">
        <Columns>
        </Columns>
    </asp:GridView>

后台:
        DataRow row;

        DataTable dtTpQty = new DataTable();
        dtTpQty.Columns.Add("ID");
        dtTpQty.Columns.Add("type");
        dtTpQty.Columns.Add("qty");

        row = dtTpQty.NewRow();
        row["ID"] = "0001";
        row["type"] = "0";
        row["qty"] = "2500";
        dtTpQty.Rows.Add(row);

        row = dtTpQty.NewRow();
        row["ID"] = "0001";
        row["type"] = "1";
        row["qty"] = "3100";
        dtTpQty.Rows.Add(row);

        row = dtTpQty.NewRow();
        row["ID"] = "0001";
        row["type"] = "2";
        row["qty"] = "2600";
        dtTpQty.Rows.Add(row);

        row = dtTpQty.NewRow();
        row["ID"] = "0001";
        row["type"] = "3";
        row["qty"] = "1500";
        dtTpQty.Rows.Add(row);

        row = dtTpQty.NewRow();
        row["ID"] = "0002";
        row["type"] = "0";
        row["qty"] = "1100";
        dtTpQty.Rows.Add(row);

        row = dtTpQty.NewRow();
        row["ID"] = "0002";
        row["type"] = "1";
        row["qty"] = "4200";
        dtTpQty.Rows.Add(row);

        row = dtTpQty.NewRow();
        row["ID"] = "0002";
        row["type"] = "2";
        row["qty"] = "3200";
        dtTpQty.Rows.Add(row);

        row = dtTpQty.NewRow();
        row["ID"] = "0002";


        row["type"] = "3";
        row["qty"] = "1500";
        dtTpQty.Rows.Add(row);

        row = dtTpQty.NewRow();
        row["ID"] = "0003";
        row["type"] = "3";
        row["qty"] = "5100";
        dtTpQty.Rows.Add(row);

        DataTable dtShow = new DataTable();
        dtShow.Columns.Add("ID");
        DataColumn[] cols = new DataColumn[1];
        cols[0] = dtShow.Columns["ID"];
        dtShow.PrimaryKey = cols;

        string strType="";
        foreach (DataRow rowTpQty in dtTpQty.Rows)
        {
            strType = "type" + rowTpQty["type"].ToString();
            if (dtShow.Columns.IndexOf(strType) < 0)
            {
                dtShow.Columns.Add(strType);
            }

            if (!dtShow.Rows.Contains(rowTpQty["ID"].ToString()))
            {
                row = dtShow.NewRow();
                row["ID"] = rowTpQty["ID"].ToString();
                dtShow.Rows.Add(row);
            }
            else
            {
                row = dtShow.Rows.Find(rowTpQty["ID"].ToString());
            }

            row[strType] = rowTpQty["qty"].ToString();
        }

        BoundField bf = null;
        DataColumn col = null;
        for (int i = 0; i < dtShow.Columns.Count; i++)
        {
            col = dtShow.Columns[i];
            bf = new BoundField();
            bf.DataField = col.ColumnName;
            bf.HeaderText = col.ColumnName;



            gv.Columns.Add(bf);
        }

        gv.DataSource = dtShow;
        gv.DataBind(); 


[其他解释]
引用:
写DataSource是需要一行一行的赋值吗?怎么写

GridView的DataSource接收一个直接或间接继承自ICollection,IList的数据集合类。只需要提供数据源就可以了。想在每行绑定时处理一些逻辑,可以在RowDataBound事件中处理
[其他解释]
在.cs里定义个变量或者一个方法
aspx:<%= ...%>...
[其他解释]
如果是数据
去取页面的Control list(控件ID是可变的)然后根据type去取GridView
[其他解释]
cs页中写代码
GridView.DataSource=
GridView.DataBind()
[其他解释]
动态去创建BoundField,最后一起添加到GridView中
[其他解释]
效果:

[其他解释]
GridView的RowDataBound处理你的需求
[其他解释]
引用:
写DataSource是需要一行一行的赋值吗?怎么写


直接将读取的数据集赋值给它就可以了,不需要一行一行赋值
[其他解释]
写DataSource是需要一行一行的赋值吗?怎么写
[其他解释]
这个是行变列的例子,你可以参考下
[其他解释]
非常感谢大家的帮忙,已经解决了

热点排行