zoukankan      html  css  js  c++  java
  • 如果情况允许的话,GridView的ViewState也是可以很小的。

        我在使用GridView的时候,大部分情况下都是这么使用的:

    有一个删除按钮或其他一些事件按钮,需要回发,执行这样的事件类似于这样

        //删除会员
        protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        
    {
            
    string keyID = GridView1.DataKeys[e.RowIndex].Value.ToString();
            
    if (userData.DeleteUser(keyID))
            
    {
                
    this.BindUserList();
            }

        }
    在这种情况下,我没法在在GridView的层次上禁用ViewState,如果我不禁用ViewState的话,20条记录ViewState大概在10000个字符左右。现在都流行压缩ViewState,虽然在性能上有所影响,总体来讲,也不失为一种好办法,压缩之后,字符数载1500个左右,少了将近10倍,压缩方法为:
    Code

    压缩ViewState的方法挺好,但是却加重了服务器的负担。有没有更好的办法呢,既能减少ViewState,又不增加服务器端的负担,我这里到有一个,大家可以参考一下,
    1    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    2    {
    3        if (e.Row.RowIndex != -1)
    4        {
    5            e.Row.EnableViewState = false;
    6            //其他操作
    7        }

    8    }
    关键的地方在第5行,加上这句话后,ViewState的大小为450个字符左右,比压缩的还要少3倍多,而且也没有增加服务器的负担,e.Row.EnableViewState=false,是禁止了一行的ViewState,有时候我们不能禁止一行的,但是可以禁止某些列,你可以这么写,e.Row.Cells[列号].EnableViewState=false。
    这些都是在使用GridView的时候,发现的一些小的技巧,希望能对使用它的朋友有所帮助。
  • 相关阅读:
    宣化上人:大佛顶首楞严经四种清净明诲浅释(4-5)(转自学佛网:http://www.xuefo.net/nr/article23/230699.html)
    宣化上人:大佛顶首楞严经四种清净明诲浅释(6-7)(转自学佛网:http://www.xuefo.net/nr/article23/230700.html)
    宣化上人: 大佛顶首楞严经四种清净明诲浅释(8-9)(转自学佛网:http://www.xuefo.net/nr/article23/230825.html)
    [我的CVE][CVE-2017-15708]Apache Synapse Remote Code Execution Vulnerability
    Ubuntu bash不记录history方法
    [我的CVE][CVE-2017-15709]Apache ActiveMQ Information Leak
    java.lang.Runtime.exec() Payload Workarounds
    CVE-2017-12149 JBOOS AS 6.X 反序列化漏洞利用
    Apache Continuum 远程命令执行漏洞
    docker 端口映射iptables: No chain/target/match by that name错误解决方法
  • 原文地址:https://www.cnblogs.com/fengfeng/p/1136047.html
Copyright © 2011-2022 走看看