表格显示控件。
属性 |
属性说明 |
---|---|
AllowFiltering |
是否允许过滤。 |
AllowPaging |
是否在页脚处显示分页器 |
AllowTextWrap |
是否允许自动换行 |
Color |
设置文字颜色 |
Columns |
设置列 |
DataMember |
数据源名称。 |
DataSource |
数据源。 |
EditSetting |
编辑设置 AllowAdding:是否允许新增行, 默认False AllowDeleting:是否允许删除行,默认False AllowEditing:是否允许编辑行,默认False NewRowPosition:设置新增行位置,默认Bottom |
FontSize |
字体大小 |
GridLines |
分隔线。 |
PageSetting |
分页设置 CurrentPage:是否允许新增行,默认1 EnableQueryString:是否传递页面信息,默认False PageCount:显示的页面数,默认8 PageSize:每页显示的记录数,默认12 PageSizeSelector:是否以下拉框显示页码,默认False |
RowClickEventRaise |
是否触发行点击事件 |
RowWidth |
行宽 |
SelectionSetting |
选择设置 AllowColumnSelection:是否允许选择列,默认False CheckBoxOnly:是否仅允许通过CheckBox选择,默认False PersistSelection:是否持久选择,默认False SelectionMode:选择模式,默认Row SelectionType:选择模式,默认Single SimpleMultiRowSelection:是否允许执行多选和选中行回调,默认False |
事件 |
事件说明 |
---|---|
RowCancel |
行修改取消事件,在执行CancelChange方法后点击OK时触发 |
RowClick |
行点击事件,在行点击且RowClickEventRaise=Ture时触发 |
RowSave |
行修改保存事件,在执行SaveChange方法后点击OK时触发 |
方法 |
方法说明 |
---|---|
AddRows |
新增行 |
CancelChange |
行修改取消 |
Reload |
刷新数据 |
RemoveRow |
删除选择行 |
SearchRow |
搜索符合给定条件的行 |
UpdateRows |
更新行 |
当AllowPage设置True时,可以分页,PageSetting属性生效。
点击Columns属性,添加列,设置DisplayMember和HeaderText。注意:DisplayMember需要和数据源中列名相同。
在页面的Load事件中进行绑定数据源。
C#:
Random rd = new Random();
DataTable dt = new DataTable("Table");
dt.Columns.Add(new DataColumn("Label", typeof(string)));
dt.Columns.Add(new DataColumn("Progress", typeof(float)));
dt.Columns.Add(new DataColumn("Slider", typeof(float)));
dt.Columns.Add(new DataColumn("CheckBox", typeof(bool)));
dt.Columns.Add(new DataColumn("DatePicker"));
dt.Columns.Add(new DataColumn("Section", typeof(string)));
string rdBind = rd.Next(0, 101).ToString();
for (int i = 0; i < 100; i++)
{
string rdmark = i.ToString() + " - " + rdBind;
DataRow row = dt.NewRow();
row["Label"] = rdmark;
row["Progress"] = rd.Next(0, 101) / 100f;
row["Slider"] = rd.Next(0, 101) / 100f;
row["DatePicker"] = DateTime.Now;
row["CheckBox"] = (i % 2) > 0 ? true : false;
row["Section"] = ((int)(Math.Floor((decimal)(i / 1)))).ToString();
dt.Rows.Add(row);
}
this.gridView1.DataSource = dt;
this.gridView1.DataBind();
1)获取选中行,可在Button或者其他控件事件中写以下代码。
C#:
gridView1.GetSelectedRows((obj, args) => {
string text = "";
foreach(Dictionary<string ,object> dict in args.SelectedRows)
{
foreach (KeyValuePair<string, object> kv in dict)
{
text += kv.Key + " : " + kv.Value.ToString() + " ; ";
}
text += Environment.NewLine;
}
Toast(text);
});
2)重新加载数据,可在Button或者其他控件事件中写以下代码。
C#:
Random rd = new Random();
DataTable dt = new DataTable("Table");
dt.Columns.Add(new DataColumn("Label", typeof(string)));
dt.Columns.Add(new DataColumn("Progress", typeof(float)));
dt.Columns.Add(new DataColumn("Slider", typeof(float)));
dt.Columns.Add(new DataColumn("CheckBox", typeof(bool)));
dt.Columns.Add(new DataColumn("DatePicker"));
dt.Columns.Add(new DataColumn("Section", typeof(string)));
string rdBind = rd.Next(0, 101).ToString();
for (int i = 101; i < 150; i++)
{
string rdmark = i.ToString() + " - " + rdBind;
DataRow row = dt.NewRow();
row["Label"] = rdmark;
row["Progress"] = rd.Next(0, 101) / 100f;
row["Slider"] = rd.Next(0, 101) / 100f;
row["DatePicker"] = DateTime.Now;
row["CheckBox"] = (i % 2) > 0 ? true : false;
row["Section"] = ((int)(Math.Floor((decimal)(i / 1)))).ToString();
dt.Rows.Add(row);
}
gridView1.Reload(dt);
3)搜索符合给定条件的行,可在Button或者其他控件事件中写以下代码。
C#:
List searchDatas = new List();
searchDatas.Add(new GridSearchData() { Field="Label", SearchValue=new string[] { "1","2"}, Predicate= Predicate.Or}); // 搜索 Label 列含有1或2 的数据
gridView1.SearchRow(searchDatas);