From 165a59910558e7aa0f377f22b117fe460e4c81ef Mon Sep 17 00:00:00 2001 From: SwathiDhatchanamoorthi Date: Fri, 11 Nov 2022 19:19:58 +0530 Subject: [PATCH] WF-64705 - Updated the README file --- README.md | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 92 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 680aa07..6e53a2c 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,92 @@ -# how-to-load-checkbox-in-header-cells -This example illustrates how to load checkbox in header cells of GridDataBoundGrid control +# How to put a CheckBox in a header cell in the WinForms GridControl or GridDataBoundGrid + +## Adding checkbox in a header cell + +### GridControl: + +In [WinForms GridControl](https://www.syncfusion.com/winforms-ui-controls/grid-control), to put a CheckBox in the GridControl, set the CellType to CheckBox and assign string values for the CheckedValue and UncheckedValue in the CheckBoxOptions property. The value of the CheckBox can be stored to a particular cell in the GridControl and the CheckBoxClick event gets triggered when the CheckBox is clicked. The following is the code example for GridControl. + +## C# + +```C# +this.gridControl1[0,2].CellType = "CheckBox"; +this.gridControl1[0,2].Description = "B"; +this.gridControl1[0,2].CellAppearance = GridCellAppearance.Raised; +``` + +## VB + +```VB +Me.gridControl1(0,2).CellType = "CheckBox" +Me.gridControl1(0,2).Description = "B" +Me.gridControl1(0,2).CellAppearance = GridCellAppearance.Raised +``` + +## GridDataBoundGrid: + +To put a CheckBox in the GridDataBoundGrid, two events have to be used. The QueryCellInfo event is used to set the style properties and the SaveCellInfo event is used to save the cell's value. The value of the CheckBox cannot be stored in the GridDataBoundGrid, so any datatype/collection can be used to store the value. The CheckBoxClick event gets triggered when the CheckBox is clicked. In the following code example, the CheckBox is added to the Column header on the GridDataBoundGrid. + +## C# + +```C# +private bool CheckBoxValue = false; +private void Model_QueryCellInfo(object sender, GridQueryCellInfoEventArgs e) +{ + if(e.ColIndex > 0 && e.RowIndex == 0) + { + int colIndex1 = this.gridDataBoundGrid1.Binder.NameToColIndex("Column2"); + if(colIndex1 == e.ColIndex) + { + e.Style.Description = "Check"; + e.Style.CellValue = CheckBoxValue; + e.Style.CellValueType = typeof(bool); + e.Style.CheckBoxOptions = new GridCheckBoxCellInfo(true.ToString(), false.ToString(), "", true); + e.Style.CellType = "CheckBox"; + e.Style.CellAppearance = GridCellAppearance.Raised; + e.Style.Enabled = true; + } + } +} +private void Model_SaveCellInfo(object sender, GridSaveCellInfoEventArgs e) +{ + if(e.ColIndex > 0 && e.RowIndex == 0) + { + int colIndex1 = this.gridDataBoundGrid1.Binder.NameToColIndex("Column2"); + if(colIndex1 == e.ColIndex) + { + if(e.Style.CellValue != null) + CheckBoxValue = (bool)e.Style.CellValue; + } + } +} +``` + +## VB + +```VB +Private CheckBoxValue As Boolean = False +Private Sub Model_QueryCellInfo(ByVal sender As Object, ByVal e As GridQueryCellInfoEventArgs) + If e.ColIndex > 0 AndAlso e.RowIndex = 0 Then + Dim colIndex1 As Integer = Me.gridDataBoundGrid1.Binder.NameToColIndex("Column2") + If colIndex1 = e.ColIndex Then + e.Style.Description = "Check" + e.Style.CellValue = CheckBoxValue + e.Style.CellValueType = GetType(Boolean) + e.Style.CheckBoxOptions = New GridCheckBoxCellInfo(True.ToString(), False.ToString(), "", True) + e.Style.CellType = "CheckBox" + e.Style.CellAppearance = GridCellAppearance.Raised + e.Style.Enabled = True + End If + End If +End Sub +Private Sub Model_SaveCellInfo(ByVal sender As Object, ByVal e As GridSaveCellInfoEventArgs) + If e.ColIndex > 0 AndAlso e.RowIndex = 0 Then + Dim colIndex1 As Integer = Me.gridDataBoundGrid1.Binder.NameToColIndex("Column2") + If colIndex1 = e.ColIndex Then + If e.Style.CellValue IsNot Nothing Then + CheckBoxValue = CBool(e.Style.CellValue) + End If + End If + End If +End Sub +```