昨天遇到了一个问题,就是下拉帮助每一行的帮助数据都是不同,而RepositoryItemLookUpEdit是控制一列数据的。
所以如果改变当前行数据的下拉数据源,那么上行数据的显示值就会消失掉。
后来用GridView的CustomRowCellEdit解决了这个问题。代码如下
private void gridView2_CustomRowCellEdit(object sender, CustomRowCellEditEventArgs e)
{
DataRow row = parameterOrderForm.gridView2.GetDataRow(e.RowHandle);
DataView dv=null; RepositoryItemLookUpEdit lookupEdit = null;
string paramCode = string.Empty; if (e.Column.Equals(parameterOrderForm.colparamvalue)&&row != null)
{ paramCode = row["paramsource"].ToString(); if (!string.IsNullOrEmpty("0"))
{ dv = new DataView(paramValeuHelper, "datahelpcode='" + paramCode + "'", "", DataViewRowState.Unchanged);
lookupEdit = new RepositoryItemLookUpEdit(); lookupEdit.DataSource = dv.ToTable(); lookupEdit.DisplayMember = "dicname";
lookupEdit.ValueMember = "diccode"; lookupEdit.Columns.Clear();
lookupEdit.Columns.Add(new LookUpColumnInfo("dicname", 50, "dicname"));
lookupEdit.NullText = string.Empty; lookupEdit.ShowHeader = false; e.RepositoryItem = lookupEdit; } } }