• ASP.NET中Gridview一些技巧


    ASP.NET中Gridview一些技巧

    一、后台覆盖掉Gridview中自动填充的值

      我们可以再Gridview中的事件触发的过程中修改其中的值,而这些值将会在具体的运行过程中覆盖掉那些自动属性。这样我们就可以快捷高效的使用VS中的Gridview控件的同时,又增加一定的自主性和可操作性。

    例如:

    ItemInserting事件:数据在插入数据库之前会触发这个事件。

    如果主键是Guid类型的,就可以在此事件内处理:生成一个Guid数据,然后赋值给e.Values[“Id”].

    protected void ListView1_ItemInserting(object sender, ListViewInsertEventArgs e)

    {

      //e.Values["Sex"] = "男"; //在插入数据库之前,把性别改为男。则无论输入什么,最终都会是男”

      //e.Values["Sex"]就是即将要插入的性别字段的值。

    }

    二、善用GridView控件的HyperLinkField数据行

      在使用GridView的时候,我们往往希望添加一列超链接,用来定位到一个与该行某列数据相关的操作页面。事实上GridView中的HyperLinkField为我们提供了便捷的操作。注意其中的DataTextFiele是用来绑定选定字段,以显示在表中。而DataNavigateUrlForri则是该项的链接地址,其中的URL传值的绑定项便是上方的DataNavigateUrlied中绑定字段的值。数据中的最后一个属性DataTextFormatString我们下面会提到。

    三、GridView中编辑列下数据中的DataTextFormatString

      DataTextFormatString很少使用到,单是极大的方便了我们对数据项格式的控制,下面将列举一些该属性对格式控制的具体样例:

    该部分转载至:http://blog.csdn.net/ggj00006/article/details/6583849

    DataTextFormatString="{0:Axx}"

    用來取得或設定文字型別的資料該如何顯示

    A 為格式字元

    xx 是指數字位數或小數點位數,如果沒有指定小數點的位數,大部份格式的預設值為2,超過的位數會自動四捨五入。

    格式字元
    說明
    C
    將數值顯示為貨幣格式。
    D
    將數值顯示為十進位格式。
    E
    將數值顯示為科學格式。
    F
    將數值顯示為固定科學格式。
    G
    將數值顯示為一般格式。
    N
    將數值顯示為數字格式。
    X
    將數值顯示為十六進位格式。
    例子:
    範例值
    格式
    套用結果
    12345.6789
    "{0:C}"
    $12,345.68
    -12345.6789
    "{0:C}"
    ($12,345.68)
    12345
    "{0:D8}"
    00012345
    12345.6789
    "{0:E}"
    1234568E+004
    12345.6789
    "{0:F}"
    12345.68
    12345.6789
    "{0:F0}"
    12346
    12345.6789
    "{0:G}"
    12345.6789
    123456789
    "{0:N4}"
    123,456,789.0000

    DataTextFormatString="{0:A}"

    用來取得或設定日期時間型別的資料該如何顯示

    A 為格式字元

    範例值
    格式
    套用結果
    2006/1/20
    "{0:d}"
    2006/1/20
    2006/1/20
    "{0:D}"
    2006年1月20日
    2006/1/20
    "{0:f}"
    2006年1月20日 上午 12:00
    2006/1/20
    "{0:F}"
    2006年1月20日 上午 12:00:00
    2006/1/20
    "{0:g}"
    2006/1/20 上午 12:00
    2006/1/20
    "{0:G}"
    2006/1/20 上午 12:00:00
    2006/1/20
    "{0:m}" 或 "{0:M}"
    1月20日
    2006/1/20
    "{0:r}" 或 "{0:R}"
    Fri, 20 Jan 2006 0:00:00 GMT
    2006/1/20
    "{0:s}"
    2006-01-20T00:00:00
    2006/1/20
    "{0:t}"
    上午 12:00
    2006/1/20
    "{0:T}"
    上午 12:00:00
    2006/1/20
    "{0:u}"
    2006-01-20 00:00:00Z
    2006/1/20
    "{0:U}"
    2006年1月20日 下午 04:00:00
    2006/1/20
    "{0:y}" 或 "{0:Y}"
    2006年1月

    DataTextFormatString="{0:xxxx}"

    用來指定日期時間型別的資料該如何顯示

    xxxx 為日期時間的顯示格式,格式字元會區份大小寫

    格式字元
    說明
    d
    以數字顯示日期,如果日期只有個位數,十位數不會補上0。
    dd
    以數字顯示日期,如果日期只有個位數,十位數會補上0。
    ddd
    顯示該日期為星期幾,英文系統會顯示星期縮寫。
    dddd
    顯示該日期為星期幾,英文系統會顯示星期全名。
    M
    以數字顯示月份,如果月份只有個位數,十位數不會補上0。
    MM
    以數字顯示月份,如果月份只有個位數,十位數會補上0。
    MMM
    顯示月份名稱,英文系統會顯示月份縮寫。
    MMMM
    顯示月份名稱,英文系統會顯示月份全名。
    yy
    以兩位數顯示西元年,例如2006年會顯示06。
    yyyy
    以四位數顯示西元年,例如2006年會顯示2006。
    h
    以數字顯示小時,如果小時只有個位數,十位數不會補上0。
    hh
    以數字顯示小時,如果小時只有個位數,十位數會補上0。
    m
    以數字顯示分鐘,如果分鐘只有個位數,十位數不會補上0。
    mm
    以數字顯示分鐘,如果分鐘只有個位數,十位數會補上0。
    s
    以數字顯示秒數,如果秒數只有個位數,十位數不會補上0。
    ss
    以數字顯示秒數,如果秒數只有個位數,十位數會補上0。
    tttt
    顯示上午或下午
    其它符號
    指定任何符號即可顯示該符號,通常;符號為時間分隔符號,/符號為日期分隔符號。
    例子:
    範例值
    格式
    套用結果
    2006/1/20
    "{0:yyyy年M月d日}"
    2006年1月20日
    2006/1/20
    "{0:ddd}"
    星期五
    2006/1/20
    "{0:yyyy/M/d}"
    2006/1/20

    四、”代替Gridview中的过长字符串

      有时候过长的行内显示往往让我们的页面布局混乱不堪,接下来的方法可以将Gridview中过长的行内内容覆盖掉。注意其中的RowDataBound时间的使用。

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

        {

            if (e.Row.RowType == DataControlRowType.DataRow)

            {

                string content = e.Row.Cells[3].Text;

                e.Row.Cells[3].Text = SubStr(content, 12);

            }

        }

        //自定义方法,用来截取超出显示的gridview中的项

        private string SubStr(string str, int len)

        {

            if (str.Length<=len)

            {

                return str;

            }

            string newStr = str.Substring(0, len);

            newStr += "...";

            return newStr;

        }

    五、向GridView查询中传值

      如果之前你还按照提示一中的方法修改Gridview中的操作数据的话,现在你可以使用这种方法更高效的完成相应的操作了。它可以向GridView中where语句添加相应的值,这些值可以来自Cookie,Session,Url传值,控件属性甚至是路由和窗体字段。

      如何Boy现在你可以如鱼得水的使用GridView控件了吧。


    如果这些内容帮助到你了,希望您给予支持 o(^▽^)o

    (支付宝)

    点赞鼓励下,(づ ̄3 ̄)づ╭❤~

    作者:君莫笑
           出处:https://www.cnblogs.com/Firepad-magic/
           Unity最受欢迎插件推荐:点击查看
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    为什么cmd拖拽文件进去时有时候带引号,有时候不带?
    Android开发学习笔记:Spinner和AutoCompleteTextView浅析
    使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解决办法
    Android Fragment完全解析,关于碎片你所需知道的一切
    国外程序员推荐:每个程序员都应该读的非编程书
    百度地图添加覆盖物与给定两点路线规划
    Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用
    Unable to execute dex: Multiple dex files define 解决方法
    Android 百度地图 SDK v3.0.0 (二) 定位与结合方向传感器
    poppupwindow android
  • 原文地址:https://www.cnblogs.com/Firepad-magic/p/4986447.html
Copyright © 2020-2023  润新知