2017-01-09 163 views
0

我正在使用gridcontroldevexpres。我想从gridcontrol填充一个对象,如textedit,datepicker,checkbox等,因为我必须制作一个函数,如DGSearch_CellClick;但在获取该值时出现问题,无法将其设置为像textedit,datepicker,checkbox这样的对象。getrowcellvalue获取值但不填充使用对象的文本框

下面是我的代码:

public void DGSearch_CellClick(GridView GView, object[] ConMast, int CurrRow) 
{ 
    try 
    { 
     for (int i = 0; i <= ConMast.Length - 1; i++) 
     { 
      ConMast[i] = GView.GetRowCellValue(CurrRow, GView.Columns[i]).ToString(); 
     } 
    } 
    catch (Exception) { } 
}  

public void Search(int k) 
{ 
    try 
    { 
     // vbcls.DGSearch_CellClick(GViewSearch, new Control[] { TxtMstID, DtDate, TxtJno, DtSite, TxtPartyCode, TxtCompanyCode, TxtTypeCode, TxtArticalCode, TxtJanCharniCode, TxtProcessCode, TxtRgPer, TxtPoPer, TxtManufacturerSize, TxtLsWt, TxtMainCutno, TxtCutNo, TxtRemarks, ChkAutoCut, ChkAutoKno }, k); 

     vbcls.DGSearch_CellClick(GViewSearch, new object[] { TxtMstID.Text, DtDate.EditValue, TxtJno.Text, DtSite.EditValue, TxtPartyCode.Text, TxtCompanyCode.Text, TxtTypeCode.Text, TxtArticalCode.Text, TxtJanCharniCode.Text, TxtProcessCode.Text, TxtRgPer.Text, TxtPoPer.Text, TxtManufacturerSize.Text, TxtLsWt.Text, TxtMainCutno.Text, TxtCutNo.Text, TxtRemarks.Text, ChkAutoCut.Checked, ChkAutoKno.Checked }, k); 
     FillData(); 
     GCSearch.Visible = false; 
     BtnEdit.Focus(); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
} 
+0

没有任何调查,我不知道你是否不应该通过引用传递ConMast,如'public void DGSearch_CellClick(GridView GView,ref object [] ConMast,int CurrRow)'? – menssana

回答

0

虽然你当然可以在网格中直接编辑值,我觉得最好的办法是让你的网格数据绑定到一个DataTable,如果你要的,但最好是对象的集合。

添加一个BindingSource组件会给你一个更多的工具,我建议使用它。例如,如果将集合绑定到绑定源并将绑定源绑定到网格,则对网格中关注行的任何更改将自动更新bindSource.Current

下面是可能的样子:

gridDgSearch.DataSource = bindDgSearch; 

List<DgSearch> dgSearchList = DgSearchCrud.GetAll(); 
bindDgSearch = dgSearchList; 

现在,而不是试图寻找项目在网格中,只需通过您的收藏迭代。不是更新网格中的项目,而是更新集合中的项目并刷新网格。

此外,e.RowHandle在许多电网事件将显示该行中的问题,这意味着这样的:

(DgSearch)gridDgSearchView.GetRow(e.RowHandle); 

会给你该行的整个对象(如果该事件ARG尚不)。

如果您可以更详细地说明网格的内容来自哪里,您想要如何处理它等,这可能有助于缩小如何用这种方法处理它。