devexpress GridControl 사용
그리드
- 열 그룹화 옵션을 false로 두지 않으면 컬럼명 위의 헤더 부분에 열을 드래그해서 옮기면 그룹화된다는 영어 뜸
- groupPannal 택스트로 헤더부분에 텍스트 넣을 수 있음
- 오른쪽 상단의 검색아이콘을 통해 그리드 컨트롤 데이터 검색 가능 (대소문자 구별하지않음)
- json으로 넘어온 데이터를 역직렬화해서 바로 DataSource 로 바인딩해도 GridView 객체를 통해 컬럼명을 임의로 바꿀 수 있음 (Gridview.Columns[i].name)
using DevExpress.XtraGrid.Views.Grid;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WinFormsControlLibraryGrid
{
public partial class UserControl1 : UserControl
{
GridView view;
public UserControl1()
{
InitializeComponent();
view = gridControl.FocusedView as GridView;
view.GroupPanelText = " ";
}
public void Display()
{
string dataList = HttpRequest.GetRawDataList();
dynamic dynamicObject = JsonConvert.DeserializeObject(dataList);
gridControl.DataSource = dynamicObject;
gridControl.ForceInitialize();
view.PopulateColumns();
//그룹 패널의 열 그룹화 옵션 false
GridOptionsMenu optionsMenu = new GridOptionsMenu();
optionsMenu.EnableGroupPanelMenu = false;
view.OptionsView.ShowGroupPanel = true;
//view.GroupPanelText = " "; //생성자에서 초기화
string[] name = { "Measure Time", "Wafer Number", "Actual Value", "Predict Value", "Accuracy", "Lot ID" };
for (int i = 0; i < view.Columns.Count; i++)
{
view.Columns[i].Caption = name[i];
}
}
}
}
정리 전
using DevExpress.XtraGrid.Views.Grid;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WinFormsControlLibraryGrid
{
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
Display();
}
public void Display()
{
string dataList = HttpRequest.GetRawDataList();
//Console.WriteLine("결과>" + dataList);
//바인딩 json ->net
dynamic dynamicObject = JsonConvert.DeserializeObject(dataList);
/*var utf8Reader = new Utf8JsonReader();
dynamic dynamicObject =
System.Text.Json.JsonSerializer.Deserialize<dynamic>(empList);
*/
//DataTable dt = new DataTable();
//dt.Columns.Add("Time", typeof(string));
//Console.WriteLine("역직렬화후>" + dynamicObject.ToString());
//JObject.Parse();
//dynamicObject.Add("abcdeff", typeof(string));
gridControl.DataSource = dynamicObject;
gridControl.ForceInitialize();
GridView view = gridControl.FocusedView as GridView;
view.PopulateColumns();
view.OptionsView.ShowGroupPanel = false;
string[] name = { "Measure Time", "Wafer Number", "Actual Value", "Predict Value", "Accuracy", "Lot ID" };
for (int i = 0; i < view.Columns.Count; i++)
{
view.Columns[i].Caption = name[i];
}
}
/*public static void Main()
{
UserControl1 u = new UserControl1();
Console.WriteLine(u);
Console.ReadLine();
}*/
}
}
'C#' 카테고리의 다른 글
[220401] TreeControl & ModelControl (0) | 2022.04.01 |
---|---|
[220328] chart stop, restart (0) | 2022.03.28 |
[220321] [C# +Java] Employees 직원 데이터 CRUD (0) | 2022.03.21 |
[220321] HttpWebRequest(WebRequest), WebClient, HttpClient (0) | 2022.03.21 |
[220318] C#의 데이터 JAVA로 전송 (Rest API), POSTMAN 사용 (0) | 2022.03.18 |