久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

DevExpress學(xué)習(xí)系列(控件篇):GridControl的基本應(yīng)用

 昵稱10504424 2015-08-26

一般屬性設(shè)置

  • 不顯示分組框:Gridview->Option View->Show Group Panel=false
  • 單元格不可編輯:gridcontrol -->gridview -->OptionsBehavior -->Editable=false
  • 禁用過濾器:Run Design->OptionsCustomization->AllowFilter=false
  • 禁用右鍵菜單:Run Design->OptionsMenu->EnableColumnMenu=false
  • 列的寬度自動(dòng)調(diào)整:gridView1.OptionsView.ColumnAutoWidth=true
  • 禁止排序:gridView1.OptionsCustomization.AllowSort = false;
  • 列頭禁止移動(dòng):gridView1.OptionsCustomization.AllowColumnMoving = false;
  • 每次選擇一行:this.gridView1.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus
  • 記錄定位:this.gridView.MoveNext() this.gridView.MoveLast() this.gridView.MoveFirst()
  • 顯示水平滾動(dòng)條:this.gridView.OptionsView.ColumnAutoWidth = false;
  • 凍結(jié)列:physicColumn.Fixed = FixedStyle.Left;

數(shù)據(jù)綁定

  • 基本的綁定
    gridControl1.DataSource=dt;
    在對應(yīng)的Grid中添加列,,設(shè)置其中的Data(Category)
  • 根據(jù)數(shù)據(jù)源自動(dòng)產(chǎn)生列
    gridView2.PopulateColumns();

添加底部統(tǒng)計(jì)行

實(shí)現(xiàn)如下圖所示中的統(tǒng)計(jì)功能:

參考文章

實(shí)現(xiàn)步驟

  1. 設(shè)置顯示Footer:OptionsView > ShowFooter
  2. 設(shè)置GridView中的Summary字段或者手動(dòng)設(shè)置統(tǒng)計(jì)列:gridView1.Columns["Quantity"].Summary.Add(DevExpress.Data.SummaryItemType.Average, "Quantity", "Avg={0:n2}");

自定義綁定

很多時(shí)候,我們并不是對所有的行進(jìn)行統(tǒng)計(jì),,可能我們是通過一些特定的條件進(jìn)行統(tǒng)計(jì),,那么可以進(jìn)行統(tǒng)計(jì)行的自定義綁定,,步驟如下:

  1. 設(shè)置統(tǒng)計(jì)類型為Custom
  2. 處理事件:GridView.CustomSummaryCalculate
  3. 辨別是哪個(gè)統(tǒng)計(jì)項(xiàng)的方法

    • e.Item是GridSummaryItem,,可以利用Item中的Tag字段
  4. 注意使用e.SummaryProcess == CustomSummaryProcess.Calculate
  5. 可以在e.SummaryProcess == CustomSummaryProcess.Finalize中直接給統(tǒng)計(jì)項(xiàng)賦值。

    private void gridView2_CustomSummaryCalculate(object sender, DevExpress.Data.CustomSummaryEventArgs e)
    {
        if (e.SummaryProcess == DevExpress.Data.CustomSummaryProcess.Finalize)
        {
            e.TotalValue = 100;
        }
    }

樣式設(shè)定

顯示行號

  • this.gridView2.IndicatorWidth = 30;//設(shè)置顯示行號的列寬
  • 在事件中實(shí)現(xiàn):

    private void gridView2_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
    {
        if (e.Info.IsRowIndicator && e.RowHandle >= 0)
        {
            e.Info.DisplayText = (e.RowHandle + 1).ToString();
        }
    }

分組名稱自定義

GridControl控件分組時(shí),,分組的名稱僅僅是當(dāng)前分組的字段名稱,,如果我們想按下圖一樣自定義分組,要怎么做呢,?

  • 自定義方法

    1. 使用分組行繪制事件

      private void gridView1_CustomDrawGroupRow(object sender, DevExpress.XtraGrid.Views.Base.RowObjectCustomDrawEventArgs e)
      {
          var info = (GridGroupRowInfo)e.Info;
          var count=info.View.GetChildRowCount(e.RowHandle);
          info.GroupText = string.Format("{0},,票數(shù):{1}", info.GroupText, count);
      }
    2. 使用CustomColumnDisplayText事件

      private void gridView_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) {
          if (e.Column.FieldName == "Order Sum" && e.IsForGroupRow) {
              double rowValue = Convert.ToDouble(gridView.GetGroupRowValue(e.GroupRowHandle, e.Column));
              double val = Math.Floor(rowValue / 100);
              string groupRowInterval = string.Format("{0:c} - {1:c} ", val * 100, (val + 1) * 100);
              if (val > 14)
                  groupRowInterval = string.Format(">= {0:c} ", val * 100);
              e.DisplayText = "Order Sum: " + groupRowInterval;
          }
      }
    3. 使用GroupFormat屬性
    4. 使用分組統(tǒng)計(jì)項(xiàng)(推薦)

      gridView1.GroupSummary.Add(DevExpress.Data.SummaryItemType.Count, "Name", null, "({0}票)");
      gridView1.GroupSummary.Add(DevExpress.Data.SummaryItemType.Sum, "Volume", null, "({0}CMB)");
  • 自定義屬性

    1. 獲取分組計(jì)數(shù):GridView.GetChildRowCount

奇偶行顏色設(shè)置

  • OptionsView.EnableAppearanceEvenRow = trueOptionsView.EnableAppearanceOddRow = true;
  • 設(shè)置Appearance.EvenRow.BackColorAppearance.OddRow.BackColor

設(shè)置某個(gè)單元格的顏色

  • 通過在Appearence中添加FormatCondition,,設(shè)置應(yīng)用與整行,,還是單一個(gè)單元格
  • 使用事件gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e) 判斷
    cs if (e.Column.FieldName == "F_State") { if (e.CellValue.ToString().Equals("False")) { e.Appearance.ForeColor=Color.Red; e.Appearance.DrawString(e.Cache,e.DisplayText,r); e.Handled = true; } }

重置文字的顯示

比如數(shù)值為0時(shí)顯示為空白

  • 使用CustomColumnDisplayText事件

    private void gridView1_CustomColumnDisplayText(object sender,CustomColumnDisplayTextEventArgs e) {
       if(e.Column.FieldName == "Discount")
          if(Convert.ToDecimal(e.Value) == 0) e.DisplayText = "";
    }

設(shè)置為超鏈接單元格并處理事件

很多時(shí)候,我們點(diǎn)擊某個(gè)單元格會觸發(fā)一些事件,,比如彈出對話框,,顯示詳情或者其他一些重要的信息,這個(gè)時(shí)候,,如果能夠像html一樣,,顯示個(gè)超鏈接的形式,會比較人性化,,使用者一看就知道這個(gè)單元格是可以點(diǎn)擊的,,比如下面這種格式:

  1. 新建DevExpress.XtraEditors.Repository.RepositoryItemHyperLinkEdit

  2. 把上述Item賦值到Column的ColumnEdit屬性

  3. 獲取點(diǎn)擊的單元格,則處理事件gridView2_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e),。該事件如果單元格處于編輯狀態(tài),,則右鍵觸發(fā),否則左鍵觸發(fā)

上述方法的弊端為:點(diǎn)擊整個(gè)單元格,,會觸發(fā)事件,,跟點(diǎn)擊單元格中的鏈接才會觸發(fā)事件相差甚大,,可惜GridControl中沒有GridView控件中的CellContentClick事件,所以只能采用折中的方法,。

重要事件

  • 選擇某行觸發(fā):gridView2.RowClick += new DevExpress.XtraGrid.Views.Grid.RowClickEventHandler(gridView2_RowClick);

數(shù)據(jù)獲取

  • 選擇某行后獲取當(dāng)前表格數(shù)據(jù):this.textBox1.Text = gridView2.GetDataRow(e.RowHandle)["列名"].ToString();

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多