언 바운드식이 잘못되었습니다. I 새로운 열 & 런타임에 제한없는 표현식을 만들었습니다. gridview에서 특정 셀 값 (GetRowCellValue)을 가져 와서 바인딩되지 않은 식 열을 새 값 (SetRowCellValue)으로 변경하려고합니다. 그러나 오류는 내 실수가 뭐지? 도와주세요.mscorlib.dll에서 'System.StackOverflowException'유형의 처리되지 않은 예외가 발생했습니다. 오류가 발생 했습니까?
이것은 내 코드입니다.
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
{
}
}
도움말 제가 & 설정 값을 싶지하십시오
내 생각은 내가 SetRowCellValue 그것을 gridView1_CustomUnboundColumnData을 수정하는 경우 gridView1_CustomUnboundColumnData' 이벤트가 –
안녕하세요 옌스을 호출 할'원인 gridView1.SetRowCellValue''에 전화입니다는 "CustomUnboundColumnData 이벤트는 왼쪽 나타납니다 수 편과 같은 오류를 보여주고 있다는 것입니다 + = 또는 = + " – Srihari
예 ofc : D hehe, 왜 그랬습니까? 대신에'gridView1 ...'을 사용하여'e' 변수가 대신 사용될 수 있는지보십시오. –