当前位置:编程学习 > C#/ASP.NET >>

ASP.NET GridView动态添加行数据求详细解决代码

我想页面上来只显示表头 然后我每点击一次按钮 gridview就自动累加一条数据,不会将之前数据清除 。怎么做?  --------------------编程问答-------------------- 1, 獲取你的數據源。 DataTable dt = Dll.Query();

2, 將這個數據源用個viewstate保持起來。  ViewState["dt"] = dt;

3, 清除dt的Rows  dt.Rows.clear();

4, 綁定。    現在只有表頭了。


--------------------   按鈕事件    -------------

取出你的ViewState   

DataTable dt = (DataTable)ViewState["dt"]

和 gv 現在的行(gv.rows.count)做比較.

gv.rows.count + 1 就是你dt現在需要多少行數據。

綁定。
--------------------编程问答--------------------

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //獲取數據庫的資料,當作gv的數據源
            DataTable dtOld = new DataTable();
            dtOld.Columns.Add("測試1");
            dtOld.Columns.Add("測試2");

            //保存dt(所有數據)
            ViewState["dtOld"] = dtOld;

            //清楚所有行
            dtOld.Rows.Clear();

            GridView1.DataSource = dtOld;
            GridView1.DataBind();
        }
    }




 //button事件
    protected void Button1_Click(object sender, EventArgs e)
    {
        //取出數據源(保存了所有的數據)
        DataTable dtOld = (DataTable)ViewState["dtOld"];
        DataTable dtNow;

        if (ViewState["dtNow"] != null)
        {
            dtNow = (DataTable)ViewState["dtNow"];
        }
        else
        {
            //獲取表結構
            //dtNow 是現在的gv數據源
            dtNow = dtOld.Copy();
            dtNow.Rows.Clear();
        }

        //當前gv的數據行數
        int rowCount = GridView1.Rows.Count;

        //取原始數據源(所有數據)對應行,到新數據源
        dtNow.Rows.Add(dtOld.Rows[rowCount]);
        GridView1.DataSource = dtOld;
        GridView1.DataBind();

        //保存現在的dtNow,button事件之後的gv數據源
        ViewState["dtNow"] = dtNow;
    }

--------------------编程问答-------------------- 你添加的数据是来自数据库的还是新建的?
js可以很轻松实现啊 --------------------编程问答-------------------- 是来自数据库的。根据文本框中输入的内容找到一条添加到GRIDVIEW中,累计添加
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,