1.如何设置DEVEXPRESS里的GRIDVIEW里的comboxEdit仅允许下拉
Properties->TextEditStyle 选择DisableTextEditor
2.DEVEXPRESS遍历获取不了GRIDVIEW的值
声明一个list: List<string> ls_banzu = new List<string>();
遍历取值: if (gridView1.RowCount>0)
{
for (int i = 0; i < dt1.Rows.Count; i++)
{
ls_banzu.Add(gridView1.GetRowCellValue(i, gridView1.Columns[3]).ToString());
}
}
这里发现 ls_banzu只能取到第一行的值,原来是光标放在gridview里会使gridview处于编辑模式,要非编辑模式才可以取到数值
解决办法:输好之后把光标移动到其它控件上。
3.删除GRIDVIEW里选中的某一行
3.1设置gridview选中为整行:
3.2删除选中的行
if (this.gridView2 == null && this.gridView2.SelectedRowsCount <= 0)
{
MessageBox.Show("没有要删除的行!");
return;
}
try
{
DataRow row = this.gridView2.GetDataRow(gridView2.GetSelectedRows()[0]);
row.Delete();
return;
}
catch
{
this.ShowErrorMessage("请选择1行数据进行删除!");
}
3.3选中行后,该行改变颜色 --待研究
4.将后台数据绑定到gridview中,编辑后,获取gridview里的值,并保存到数据库
(1)获取值并绑定到DEV Grdi
datatable dt1 =new datatable(); --初始化Table 用来做绑定到gridcontrol的容器
private void aaa_Load(object sender, EventArgs e)
{
#region 初始化Table
this.dt1.Columns.Add("RCARD");
this.dt1 .Columns.Add("MITEMNAME");
this.dt1 .Columns.Add("MONAME");
this.dt1 .Columns.Add("MITEMMODEL");
this.dt1 .Columns.Add("REPAIRREASON");
this.dt1 .Columns.Add("REMARK");
this.gdFirst.DataSource = this.dt1 ;
#endregion
}
----绑定数据 ↓
if (_facade == null)
_facade = new DataCollectFacade(this.DataProvider);
OutputMessage output = _facade.CheckZJRcard(strrcard, LoginInfo.Current.OrgID,intnum);
if (!output.IsSuccess)
{
flag = 1;
ShowErrorMessage(output.ErrorMessage);
return;
}
else
{
DataTable dt = output.DataSet.Tables["Mos"];
if (dt != null)
{
this.dt1.Rows.Add( new object[]
{
dt.Rows[0][0].ToString(),
dt.Rows[0][1].ToString(),
dt.Rows[0][2].ToString(),
dt.Rows[0][3].ToString(),
"",
""
});
}
}
(2)用list获取gridview中的值
List<string> ls_rcard = new List<string>();
List<string> ls_mitem = new List<string>();
if(gridView2.RowCount>0)
{
for (int i = 0; i < this.dt1.Rows.Count; i++)
{
ls_rcard.Add(gridView2.GetRowCellValue(i, gridView2.Columns[0]).ToString());
--参数1:行,参数2:列
ls_mitem.Add(gridView2.GetRowCellValue(i, gridView2.Columns[1]).ToString());
}
}
5.DevExpress.XtraGrid.GridControl只能显示一次数据,第二次就显示不出来了
原因:
1.刷新数据:需要保证每次从数据源中得到的数据都是最新的。C#无法自动刷新,需要我们手动刷新,否则数据源仍然显示上一次的数据。
gridView.RefreshData();
2.确保每次需要显示数据时,都将正确的数据源重新绑定到 GridControl。
方法1:可以在每次需要更新数据时,手动将新的数据源分配给 GridControl 的 DataSource 属性
gridControl.DataSource = null; // 清空原有的数据源
gridControl.DataSource = newDataSource; // 分配新的数据源
例子: this.gdFirst.DataSource = null;
this._InnoTable.Clear();
this.gdFirst.DataSource = this._InnoTable;
方法2:
如果你不想重新绑定数据源,可以尝试手动刷新 GridControl 来显示最新的数据。在数据源发生变化后,调用 GridControl 的 RefreshDataSource 方法来刷新数据
gridView.RefreshData();
这将会重新加载数据源,并更新 GridControl 的显示。
无论你选择重新绑定数据源还是手动刷新 GridControl,都可以确保 GridControl 显示最新的数据。
方法3:
惊了,这三句每一个都可以实现。归根结底是,确保girdcontrol获的最新的数据源。
//this.gridView2.RefreshData();
//this.gdFirst.RefreshDataSource();
this._InnoTable.Clear();