[英]How to get TextEdit value to Cell in GridView in Winforms Devexpress?
[英]How to clear a cell value of bounded column in Gridview Winforms Devexpress?
如何清除Gridview中Bounded列的單元格值? 我執行一些計算,並將一個int值設置為一個單元格(有界列)。 再次,我重新計算該值,並嘗試在有界列時間中的同一單元格中設置該值不變,因此我嘗試在為其設置值之前清除該單元格值。
private void gridView1_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{
// % to amt
object obj = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountPercentage"]) == DBNull.Value
? 0
: (gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountPercentage"]));
decimal a = Convert.ToDecimal(obj);
if (a > 0)
{
gridColumn1.UnboundType = DevExpress.Data.UnboundColumnType.Decimal;
gridColumn1.UnboundExpression = "[UnitPrice] * ([DiscountPercentage] / 100.0)";
}
// amt to %
object dm = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountAmount"]) == DBNull.Value
? 0
: (gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountAmount"]));
decimal a1 = Convert.ToDecimal(dm);
if (a1 > 0)
{
gridColumn2.UnboundType = DevExpress.Data.UnboundColumnType.Decimal;
gridColumn2.UnboundExpression = "Round(([DiscountAmount] / [UnitPrice]) * 100.0, 2)";
}
}
private void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
{
// % to amt
object obj = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountPercentage"]) == DBNull.Value
? 0
: (gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountPercentage"]));
decimal a = Convert.ToDecimal(obj);
if (a > 0)
{
object obj2 = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["gridColumn1"]);
int aa = Convert.ToInt32(obj2);
gridView1.SetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountAmount"], aa);
}
// amt to %
object dm = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountAmount"]) == DBNull.Value
? 0
: (gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountAmount"]));
decimal a1 = Convert.ToDecimal(dm);
if (a1 > 0)
{
object obj3 = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["gridColumn2"]);
int aa2 = Convert.ToInt32(obj3);
gridView1.SetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountPercentage"], aa2);
}
}
提前致謝。
終於找到解決這個問題的辦法。
private void gridView1_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{
var row = gridView1.GetFocusedDataRow();
object obj1 = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountPercentage"]) == DBNull.Value
? 0
: (gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountPercentage"]));
int inte1 = Convert.ToInt32(obj1);
object obj2 = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountAmount"]) == DBNull.Value
? 0
: (gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountAmount"]));
int inte2 = Convert.ToInt32(obj2);
// Calculating the dicsount %
if (e.Column == colDiscountAmount)
{
if (inte2 == 0)
{
return;
}
else
{
var productPrice = Convert.ToDecimal(row["UnitPrice"]);
var quan = Convert.ToDecimal(row["Quantity"]);
var discountAmout = Convert.ToDecimal(row["DiscountAmount"]);
var temp = (discountAmout * 100) / (productPrice * quan);
row["DiscountPercentage"] = temp.ToString("n2");
}
}
// Calculating the discount amount
if (e.Column == colDiscountPercentage)
{
if (inte1 == 0)
{
return;
}
else
{
var productPrice = Convert.ToDecimal(row["UnitPrice"]);
var quan = Convert.ToDecimal(row["Quantity"]);
var discountPercent = Convert.ToDecimal(row["DiscountPercentage"]);
var temp1 = (productPrice * quan) * (discountPercent / 100);
row["DiscountAmount"] = temp1.ToString("n2");
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.