未进入 UltraGrid 编辑模式
UltraGrid Edit Mode Is Not Being Entered
我在 9 月份问过 (好吧,老实说,完全相同),但出于某种原因,该问题的解决方案在我最近的事件中不起作用...
我的 UltraGrid
现在用于为订单中的每一行输入付款日期,并有一个 CheckBox
列将其标记为已付款。每个订单行付款后,订单进入下一阶段。
无论如何,当我创建的测试订单被标记为已交付并进入当前阶段(第 5 阶段 - 等待客户付款)时,我最初可以编辑付款日期和 CheckBox
列每个订单行。
但是,如果我将一个标记为已付款,而将另一个留空然后保存,则会出现以下问题。
我进入订单以将下一行标记为已付款。我可以输入付款日期,但无法将 CheckBox
设置为 True
。事实上,在单步执行之后,单元格甚至没有进入 EditMode
,因为 CellChange
事件没有被触发。
下面 CellChange
中的代码应该允许在输入日期后将 CheckBox
单元格设置为 True
- 但是,它不会进入编辑模式。
有人能看出这是为什么吗?
Try
If e.Cell.Column.Key = "PaymentDate" Then
e.Cell.Row.Cells("Customer_Paid").Activation = Activation.AllowEdit
e.Cell.Row.Cells("Customer_Paid").IsInEditMode = True
End If
Catch ex As Exception
errorLog(ex)
End Try
Try
If e.Cell.Column.ToString = "Customer_Paid" Then
Dim customerPaid As Boolean = Boolean.Parse(e.Cell.Text)
If customerPaid = True Then
If IsDBNull(ugProducts.ActiveRow.Cells("PaymentDate").Value) Then
MsgBox("Please enter a payment date", MsgBoxStyle.OkOnly, "Invalid Date")
e.Cell.Row.Cells("Customer_Paid").Value = False
ugProducts.ActiveRow.Appearance.BackColor = Color.White
ugProducts.ActiveRow.Cells("PaymentDate").Value = DBNull.Value
Else
ugProducts.ActiveRow.Appearance.BackColor = Color.LightGreen
ugProducts.ActiveRow.Cells("Product_Price_Per").Appearance.BackColor = Color.LightGreen
End If
e.Cell.Row.Update()
Else
ugProducts.ActiveRow.Appearance.BackColor = Color.White
ugProducts.ActiveRow.Cells("Product_Price_Per").Appearance.BackColor = Color.LightGreen
ugProducts.ActiveRow.Cells("PaymentDate").Value = DBNull.Value
Exit Sub
End If
Else
End If
Catch ex As Exception
errorLog(ex)
End Try
没有错误,只是没有进入EditMode
状态。
上一个案例的解决方案是使用我这次添加的 Boolean.Parse
行,但这次没有成功。
不是问题本身的解决方法,而是我解决它的方法...
我将 PaymentDate
条目从允许 EditMode
更改为仅将 CheckBox
设置为 True
。
然而,最终用户可能不希望以这种方式完成,因此问题可能仍未得到解答,但就目前而言,这是可行的。
If e.Cell.Column.Key = "PaymentDate" Then
e.Cell.Row.Cells("Customer_Paid").Activation = Activation.AllowEdit
e.Cell.Row.Cells("Customer_Paid").Value = True
End If
我在 9 月份问过
我的 UltraGrid
现在用于为订单中的每一行输入付款日期,并有一个 CheckBox
列将其标记为已付款。每个订单行付款后,订单进入下一阶段。
无论如何,当我创建的测试订单被标记为已交付并进入当前阶段(第 5 阶段 - 等待客户付款)时,我最初可以编辑付款日期和 CheckBox
列每个订单行。
但是,如果我将一个标记为已付款,而将另一个留空然后保存,则会出现以下问题。
我进入订单以将下一行标记为已付款。我可以输入付款日期,但无法将 CheckBox
设置为 True
。事实上,在单步执行之后,单元格甚至没有进入 EditMode
,因为 CellChange
事件没有被触发。
下面 CellChange
中的代码应该允许在输入日期后将 CheckBox
单元格设置为 True
- 但是,它不会进入编辑模式。
有人能看出这是为什么吗?
Try
If e.Cell.Column.Key = "PaymentDate" Then
e.Cell.Row.Cells("Customer_Paid").Activation = Activation.AllowEdit
e.Cell.Row.Cells("Customer_Paid").IsInEditMode = True
End If
Catch ex As Exception
errorLog(ex)
End Try
Try
If e.Cell.Column.ToString = "Customer_Paid" Then
Dim customerPaid As Boolean = Boolean.Parse(e.Cell.Text)
If customerPaid = True Then
If IsDBNull(ugProducts.ActiveRow.Cells("PaymentDate").Value) Then
MsgBox("Please enter a payment date", MsgBoxStyle.OkOnly, "Invalid Date")
e.Cell.Row.Cells("Customer_Paid").Value = False
ugProducts.ActiveRow.Appearance.BackColor = Color.White
ugProducts.ActiveRow.Cells("PaymentDate").Value = DBNull.Value
Else
ugProducts.ActiveRow.Appearance.BackColor = Color.LightGreen
ugProducts.ActiveRow.Cells("Product_Price_Per").Appearance.BackColor = Color.LightGreen
End If
e.Cell.Row.Update()
Else
ugProducts.ActiveRow.Appearance.BackColor = Color.White
ugProducts.ActiveRow.Cells("Product_Price_Per").Appearance.BackColor = Color.LightGreen
ugProducts.ActiveRow.Cells("PaymentDate").Value = DBNull.Value
Exit Sub
End If
Else
End If
Catch ex As Exception
errorLog(ex)
End Try
没有错误,只是没有进入EditMode
状态。
上一个案例的解决方案是使用我这次添加的 Boolean.Parse
行,但这次没有成功。
不是问题本身的解决方法,而是我解决它的方法...
我将 PaymentDate
条目从允许 EditMode
更改为仅将 CheckBox
设置为 True
。
然而,最终用户可能不希望以这种方式完成,因此问题可能仍未得到解答,但就目前而言,这是可行的。
If e.Cell.Column.Key = "PaymentDate" Then
e.Cell.Row.Cells("Customer_Paid").Activation = Activation.AllowEdit
e.Cell.Row.Cells("Customer_Paid").Value = True
End If