Ошибка получения Unbound Expression. I Создан новый столбец & Неограниченное выражение во время выполнения. Я получаю определенные значения ячейки (GetRowCellValue) из gridview и пытаюсь изменить этот столбец несвязанного выражения с новым значением (SetRowCellValue). Но ошибка показала, что моя ошибка? Помоги мне.Произошло необработанное исключение типа «System.StackOverflowException» в ошибке mscorlib.dll?
Это мой код.
private void unbound2_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'orionSystemDataSet.Test_Product' table. You can move, or remove it, as needed.
this.test_ProductTableAdapter.Fill(this.orionSystemDataSet.Test_Product);
// TODO: This line of code loads data into the 'orionSystemDataSet.Test_Gridview' table. You can move, or remove it, as needed.
this.test_GridviewTableAdapter.Fill(this.orionSystemDataSet.Test_Gridview);
var product = repositoryItemGridLookUpEdit1.View.Columns.AddField("Type");
product.Visible = true;
//create unbound column in form load
unboundcreate();
}
private void unboundcreate()
{
gridControl1.ForceInitialize();
GridColumn unbColumn = gridView1.Columns.AddField("PriceQuantity");
unbColumn.Caption = "PricQuan";
unbColumn.VisibleIndex = gridView1.Columns.Count;
unbColumn.UnboundType = DevExpress.Data.UnboundColumnType.Decimal;
unbColumn.OptionsColumn.AllowEdit = false;
unbColumn.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
unbColumn.DisplayFormat.FormatString = "c";
unbColumn.AppearanceCell.BackColor = Color.LemonChiffon;
unbColumn.UnboundType = DevExpress.Data.UnboundColumnType.Decimal;
unbColumn.UnboundExpression = "[Quantity] * [Each]";
}
код, чтобы получить значение & установленное значение
private void gridView1_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
{
GridView view = sender as GridView;
if (e.Column.FieldName == "PriceQuantity" && e.IsGetData)
{
//e.Value = getTotalValue(view, e.ListSourceRowIndex);
calfun();
}
else
{
// nothing
}
}
private void calfun()
{
if (gridView1.FocusedRowHandle >= 1)
{
string temp = "Discount";
//string dis = TXE_Gettype.Text.ToString();
object objec = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["Type"]);
string dis = objec.ToString();
if (dis == temp)
{
object obj = gridView1.GetRowCellValue(gridView1.FocusedRowHandle - 1, gridView1.Columns["Each"]);
int aa = Convert.ToInt32(obj);
//textEdit1.Text = aa.ToString();
object obj1 = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["Each"]);
int a = Convert.ToInt32(obj1);
int b = aa;
int c = a * b;
//textEdit2.Text = c.ToString();
gridView1.SetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["PriceQuantity"], c);
}
}
else
{
}
}
Помогите мне пожалуйста, я хочу, чтобы получить & установленное значение
Я думаю, что это ваш вызов 'gridView1.SetRowCellValue', что вызывает' gridView1_CustomUnboundColumnData' событие будет называться –
Hi Jens, если я изменить SetRowCellValue к gridView1_CustomUnboundColumnData это показывает ошибку как «событие CustomUnboundColumnData может только кажется левой стороне of + = or = + " – Srihari
yes ofc: D хе-хе, зачем вам это делать? вместо использования 'gridView1 ...' попробуйте и посмотрите, можно ли вместо этого использовать переменную 'e'. –