<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        ASP.NET中為DataGrid添加合計字段

        來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 22:45:44
        文檔

        ASP.NET中為DataGrid添加合計字段

        ASP.NET中為DataGrid添加合計字段: 論壇中最常見的一個問題是: 我怎樣在 DataGrid 中顯示列合計。 我親自多次為這個問題提供了示例代碼,因此,我想在DotNetJunkies 的標題中提供這么一份指南。 在這份指南中你將會學(xué)到怎樣在 DataGrid 中編程實現(xiàn)對某一列的值進行統(tǒng)計,并在 Data
        推薦度:
        導(dǎo)讀ASP.NET中為DataGrid添加合計字段: 論壇中最常見的一個問題是: 我怎樣在 DataGrid 中顯示列合計。 我親自多次為這個問題提供了示例代碼,因此,我想在DotNetJunkies 的標題中提供這么一份指南。 在這份指南中你將會學(xué)到怎樣在 DataGrid 中編程實現(xiàn)對某一列的值進行統(tǒng)計,并在 Data

          論壇中最常見的一個問題是:“ 我怎樣在 DataGrid 中顯示列合計?”。 我親自多次為這個問題提供了示例代碼,因此,我想在DotNetJunkies 的標題中提供這么一份指南。 在這份指南中你將會學(xué)到怎樣在 DataGrid 中編程實現(xiàn)對某一列的值進行統(tǒng)計,并在 DataGrid 的頁腳中顯示其合計值。這份指南中供下載的示例中包括了 C# 和 Visual Basic.NET 兩種代碼。

          這份指南的最終結(jié)果看起來像這樣:


          從上圖可看出:

          上面所用到的屏幕圖片中的 DataGrid 是一個非常典型的 DataGrid 。有許多控制 DataGrid 外觀的屬性,它使用兩個 BoundColumns 來操作數(shù)據(jù),但這并不是最重要的。做好這項工作真正重要的是使用 DataGrid.OnItemDataBound 事件。這個事件將會觸發(fā)每次綁定一條記錄到 DataGrid。你可以為這個事件創(chuàng)建一個事件處理,以操作數(shù)據(jù)記錄。在這種情況下,你將會得到運行時 Price 列的合計值。

          頁腳指的是數(shù)據(jù)范圍的最后一行。當這行被限定時,在事件句處理你可以得到 Price 列的運行時統(tǒng)計值。

          實施

          首先讓我們找到一種方法來操作 Web 窗體輸出。 這份指南中,你將使用一個 Web 窗體 (calcTotals.aspx) 以及一個類代碼文件 (calcTotals.aspx.cs)。這份指南的意圖是, 類代碼將會使用 Just-In-Time 編譯器來編譯。 這里是 calcTotals.aspx 的代碼:

        <%@ Page Inherits="myApp.calcTotals" Src="20010731T0101.aspx.cs" %>


        AutoGenerateColumns="False"
        CellPadding="4" CellSpacing="0"
        BorderStyle="Solid" BorderWidth="1"
        Gridlines="None" BorderColor="Black"
        ItemStyle-Font-Name="Verdana"
        ItemStyle-Font-Size="9pt"
        HeaderStyle-Font-Name="Verdana"
        HeaderStyle-Font-Size="10pt"
        HeaderStyle-Font-Bold="True"
        HeaderStyle-ForeColor="White"
        HeaderStyle-BackColor="Blue"
        FooterStyle-Font-Name="Verdana"
        FooterStyle-Font-Size="10pt"
        FooterStyle-Font-Bold="True"
        FooterStyle-ForeColor="White"
        FooterStyle-BackColor="Blue"
        OnItemDataBound="MyDataGrid_ItemDataBound"
        ShowFooter="True">


        ItemStyle-HorizontalAlign="Right"
        HeaderStyle-HorizontalAlign="Center" />


          在 Web 窗體中你使用 @ Page 來直接聲明這個頁所繼承的類代碼。SRC 屬性指明了類代碼將使用 JIT 編譯器來編譯。 Web 窗體中的大部分代碼樣式聲明用來使 DataGrid 外觀變得更好看。

          最后指定的屬性之一是 OnItemDataBound 屬性。這個事件將會在 OnItemDataBound 事件發(fā)生時被觸發(fā)。

          Web 窗體中的 DataGrid (MyGrid) 包含有兩個 BoundColumns,一個是 Title ,另一個是Price。 這里將顯示 Pubs 數(shù)據(jù)庫(SQL Server)中 Titles 表的 title 及 price 列。

          忽略代碼的定義

          類代碼在所有的地方都將使用。在類代碼中,你可以操作兩個事件:Page_Load 事件以及 MyGrid_OnItemDataBound 事件。還有一個私有方法 CalcTotal, 用它來簡單的完成運行時統(tǒng)計的數(shù)學(xué)運算。

          類代碼基本結(jié)構(gòu)塊的起始部分:

        using System;
        using System.Web;
        using System.Web.UI;
        using System.Web.UI.WebControls;
        using System.Web.UI.HtmlControls;
        using System.Data;
        using System.Data.SqlClient;

        namespace myApp
        {
         public class calcTotals : Page
         {
          protected DataGrid MyGrid;
          private double runningTotal = 0;
         }
        }


          在類代碼的基本結(jié)構(gòu)中,你必須使用相關(guān)語句導(dǎo)入名字空間(namespace)。在類聲明中,你聲明了兩個變量,一個是類代碼中映射 Web 窗體的 DataGrid(MyGrid)控件的變量;一個是用來操作 DataGrid 的 Price 列中運行時統(tǒng)計的雙精度值。

          Page_Load 事件

          在 Page_Load 事件中,你所要做的就是連接到 SQL Server 并執(zhí)行一個簡單的 SqlCommand。 你取得了所有 Price 值>0 的 title 和 price 數(shù)據(jù)。你使用 SqlCommand.ExecuteReader 方法返回一個 SqlDataReader 并將其直接綁定到 DataGrid (MyGrid)。

        protected void Page_Load(object sender, EventArgs e)
        {
         SqlConnection myConnection = new SqlConnection("server=Localhost;database=pubs;uid=sa;pwd=;");//創(chuàng)建SQL連接
         SqlCommand myCommand = new SqlCommand("SELECT title, price FROM Titles WHERE price > 0", myConnection);//創(chuàng)建SQL命令

         try
         {
          myConnection.Open();//打開數(shù)據(jù)庫連接
          MyGrid.DataSource = myCommand.ExecuteReader();//指定 DataGrid 的數(shù)據(jù)源
          MyGrid.DataBind();//綁定數(shù)據(jù)到 DataGrid
          myConnection.Close();//關(guān)閉數(shù)據(jù)連接
         }
         catch(Exception ex)
         {
          //捕獲錯誤
          HttpContext.Current.Response.Write(ex.ToString());
         }
        }


          CalcTotals 方法

          CalcTotals 方法用來處理 runningTotal 變量。這個值將以字符串形式來傳遞。 你需要將它解析為雙精度型,然后 runningTotal 變量就成了雙精度類型。

        private void CalcTotal(string _price)
        {
         try
         {
          runningTotal += Double.Parse(_price);
         }
         catch
         {
          //捕獲錯誤
         }
        }

          MyGrid_ItemDataBound 事件

          MyGrid_ItemDataBound 事件在數(shù)據(jù)源中每行綁定到 DataGrid 時被調(diào)用。在這個事件處理中,你可以處理每一行數(shù)據(jù)。 這里你的目的是,你將需要調(diào)用 CalcTotals 方法并從 Price 列傳遞文本,并用金額型格式化每一行的 Price 列, 并在頁腳行中顯示 runningTotal 的值。

        public void MyDataGrid_ItemDataBound(object sender, DataGridItemEventArgs e)
        {
         if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
         {
          CalcTotal( e.Item.Cells[1].Text );
          e.Item.Cells[1].Text = string.Format("{0:c}", Convert.ToDouble(e.Item.Cells[1].Text));
         }
         else if(e.Item.ItemType == ListItemType.Footer )
         {
          e.Item.Cells[0].Text="Total";
          e.Item.Cells[1].Text = string.Format("{0:c}", runningTotal);
         }
        }

          在 MyGrid_ItemDataBound 事件句柄中,首先你得使用 ListItemType 判斷當前的 DataGridItem 是一個數(shù)據(jù)項還是AlternatingItem 行。如果是數(shù)據(jù)項,你調(diào)用 CalcTotals,并將 Price 列的值作為參數(shù)傳遞給它;然后你以金額格式對 Price 列進行格式化及著色。

          如果 DataGridItem 是頁腳,可以用金額格式顯示 runningTotal。

          總結(jié)

          在這份指南中,你學(xué)到了怎樣使用 DataGrid.OnItemDataBound 事件來實現(xiàn)運行時對DataGrid 的某一列進行統(tǒng)計。使用這個事件,你可以創(chuàng)建一個列的合計并可對DataGrid行的頁腳進行著色。

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        ASP.NET中為DataGrid添加合計字段

        ASP.NET中為DataGrid添加合計字段: 論壇中最常見的一個問題是: 我怎樣在 DataGrid 中顯示列合計。 我親自多次為這個問題提供了示例代碼,因此,我想在DotNetJunkies 的標題中提供這么一份指南。 在這份指南中你將會學(xué)到怎樣在 DataGrid 中編程實現(xiàn)對某一列的值進行統(tǒng)計,并在 Data
        推薦度:
        標簽: net 合計 asp
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 精品一区二区三区无码免费直播 | 疯狂做受xxxx高潮视频免费| 国产在线jyzzjyzz免费麻豆| 久久青青草原亚洲av无码app | 在线看片免费人成视久网| 亚洲av午夜福利精品一区人妖| 日本三级在线观看免费| 中文亚洲AV片在线观看不卡| 久久国产精品免费一区二区三区| 国产gv天堂亚洲国产gv刚刚碰| 中文字幕乱码免费看电影| 亚洲精品卡2卡3卡4卡5卡区| 国产精品免费大片| 久久精品国产亚洲AV无码麻豆 | 亚洲精品视频免费| 91成人免费观看在线观看| 无码欧精品亚洲日韩一区| 亚洲免费在线视频观看| 在线精品亚洲一区二区| 国产又大又黑又粗免费视频| 人妻无码中文字幕免费视频蜜桃| 亚洲无码在线播放| 37pao成人国产永久免费视频| 亚洲一区二区三区乱码在线欧洲| 永久黄网站色视频免费| jizz免费在线影视观看网站| 亚洲成人中文字幕| 毛片a级毛片免费播放下载| 无码毛片一区二区三区视频免费播放 | 国产亚洲精品成人a v小说| 可以免费观看的毛片| 亚洲a∨无码男人的天堂| 国产成人啪精品视频免费网| 久久最新免费视频| 亚洲日韩乱码中文无码蜜桃臀| 在线免费观看污网站| 中文字幕在线免费看线人| 亚洲伊人色一综合网| 亚洲欧洲中文日韩久久AV乱码| 久久99精品视免费看| 亚洲av无码专区青青草原|