惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
V
Visual Studio Blog
人人都是产品经理
人人都是产品经理
The GitHub Blog
The GitHub Blog
月光博客
月光博客
T
Tailwind CSS Blog
小众软件
小众软件
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Proofpoint News Feed
B
Blog RSS Feed
博客园 - 司徒正美
A
About on SuperTechFans
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 聂微东
Microsoft Security Blog
Microsoft Security Blog
Recent Announcements
Recent Announcements
博客园 - Franky
U
Unit 42
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Azure Blog
Microsoft Azure Blog
T
The Blog of Author Tim Ferriss
GbyAI
GbyAI
Apple Machine Learning Research
Apple Machine Learning Research

博客园 - 大鱼

使用XML文件来动态配置ASP.NET MVC的Route规则 发送HTML表单数据:URL编码的表单数据 MVC核心功能组件和简介 emulator-5554 disconnected! Cancelling '*** activity launch'! 安卓模拟器启动报错 AJAX 调用 WEBSERVICE的例子,包括对XML数据的处理,包含源码下载 类似ipone的滑动开锁功能--拖动后能自动回滚到起始位置--BackgroundWorker 批处理文件BAT安装WINDOWS服务带参数和设置目录 正则表达式30分钟入门教程(第二版) 【转载】 Excel VBA 应用 --批量修改选中区域单元格的时间数据,自动为时间值加1月 CELL值=CELL值 + DateAdd(“m”,1,date) - 大鱼 基于Windows下的Web性能测试和压力测试-zhuan team foundation server 安装 图片上传控件 SQL Server 2005异地备份 - 转-已验证 SQL Server 2005 镜像功能实现 - 转 -已验证 如何在VS 2005 SP1中使用VS的web服务器运行一个相对于根目录“/”的网站 xmlhttp-JS-实现用户是否注册无刷新验证 VS项目模板(项模板)制作--针对ASP.NET站点页面使用 安装用于 Team Foundation Server(单服务器部署)的 Microsoft Windows SharePoint Services ---TFS安装问题集 Aspect inside castle 实现 AOP
gridview 在列表中对信息进行增删改,通过VIEWSTATE进行缓存...
大鱼 · 2010-05-27 · via 博客园 - 大鱼

为XX人写的DEMO样例,功能实现:gridview 在列表中对信息进行增删改,通过VIEWSTATE进行缓存,然后一次性将数据提交到服务器端。 下载地址:DOWNLOAD

代码:

 

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
           DataTable dt = GetData();
           this.GridView1.DataSource = dt;
           this.GridView1.DataBind();
        }
    }

    public DataTable GetData()
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("Title");
        dt.Columns.Add("ID");

        DataRow dr = dt.NewRow();
        dr["Title"] = "测试标题";
        dr["ID"] = "1";
        dt.Rows.Add(dr);

        DataRow dr1 = dt.NewRow();
        dr1["Title"] = "测试标题";
        dr1["ID"] = "1";
        dt.Rows.Add(dr1);
       
        //新增行处理
        if (ViewState["ADDIdS"] != null)
        {
            string idAdds = ViewState["ADDIdS"].ToString();
            idAdds = idAdds.TrimStart(char.Parse(","));
            string[] items = idAdds.Split(char.Parse(","));

            for (int i = 0; i < items.Length; i++)
            {
                DataRow dtOne = dt.NewRow();
                dtOne["ID"] = (items[i].Split(char.Parse("|")))[0];
                dtOne["Title"] = (items[i].Split(char.Parse("|")))[1];
                dt.Rows.Add(dtOne);
            }
       
        }
        //删除行处理 -- 自己搞定
        if (ViewState["DeleteIdS"] != null)
        {
            string[] ids = (ViewState["DeleteIdS"].ToString()).TrimStart(char.Parse(",")).Split(char.Parse(","));
            for (int i = 0; i < ids.Length; i++)
            {
                for (int ii = 0; ii < dt.Rows.Count; ii++)
                {
                    if (dt.Rows[ii]["ID"].ToString() == ids[i])
                    {
                        dt.Rows[ii].Delete();
                        break;
                    }
                }
            }  
       
        }

      
        return dt;
    }

    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        if (ViewState["DeleteIdS"] == null)
        {
            ViewState.Add("DeleteIdS", string.Format(",{0}", GridView1.DataKeys[e.RowIndex].Value.ToString()));
        }
        else
        {
            ViewState["DeleteIdS"] = ViewState["DeleteIdS"].ToString() + string.Format(",{0}", GridView1.DataKeys[e.RowIndex].Value.ToString()); // ViewState["DeleteIdS"]
        }

        //检索增加记录,看看是否存在删除的ID
        string idAdds = ViewState["ADDIdS"] != null ? ViewState["ADDIdS"].ToString() : null;
        if (idAdds != null)
        {
            idAdds = idAdds.TrimStart(char.Parse(","));
            string[] items = idAdds.Split(char.Parse(","));

            //过滤相关记录并进行组装,
            for (int i = 0; i < items.Length; i++)
            {
            }
        }


        DataTable dt = GetData();
        this.GridView1.DataSource = dt;
        this.GridView1.DataBind();
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        if (ViewState["ADDIdS"] == null)
        {
            ViewState.Add("ADDIdS", string.Format(",{0}|{1}",Guid.NewGuid().ToString(),this.TextBox1.Text));
        }
        else
        {
            ViewState["ADDIdS"] = ViewState["ADDIdS"].ToString() + string.Format(",{0}|{1}",Guid.NewGuid().ToString(),this.TextBox1.Text); // ViewState["DeleteIdS"]
        }

        DataTable dt = GetData();
        this.GridView1.DataSource = dt;
        this.GridView1.DataBind();
    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        //新增行数据
        string idAdds = ViewState["ADDIdS"] != null? ViewState["ADDIdS"].ToString() : null;            //
        //删除行数据
        string[] ids = ViewState["DeleteIdS"] != null ? null:(ViewState["DeleteIdS"].ToString()).TrimStart(char.Parse(",")).Split(char.Parse(","));

        //新增行处理
        if (idAdds != null)
        {
            idAdds = idAdds.TrimStart(char.Parse(","));
            string[] items = idAdds.Split(char.Parse(","));

            //新增行处理
            for (int i = 0; i < items.Length; i++)
            {
            }           
        }


       
    }