【发布时间】:2016-09-27 14:13:38
【问题描述】:
我的项目包含一个允许输入订单的表单,使用 UltraGrid。
一栏是checkbox风格栏,表示订单是否已送达。
当订单到达“第 4 阶段 - 等待发货”时,用户可以将列值设置为True,然后会弹出一个新窗口,让用户输入发货的数量和价值。
如果订单尚未完全交付,则将checkbox 设置回False,并且订单行变为黄色(例如;已订购了 5 个门,但仅交付了 3 个 = False,但订单为黄色线)。
在保存订单、关闭订单并返回订单后,我尝试将 Checkbox 设置为 True,以更新订单以添加其余交货(最后 2 个关口已已交付),但是一旦我将其设置为True,它立即再次变为False(在CellChange方法中单步执行以下代码时,它表示单元格值也是False)。
那么,为什么我只能更改一次值?保存后为什么不能再更改值?是因为它在数据库中保存为False吗?
Try
If e.Cell.Column.ToString = "Goods_Delivered" Then
e.Cell.Row.Update()
If e.Cell.Value = True Then
If IsDBNull(e.Cell.Row.Cells("Final_Delivery").Value) Then
MsgBox("Please enter a delivery date", MsgBoxStyle.OkOnly, "Invalid Date")
e.Cell.Row.Cells("Goods_Delivered").Value = False
Else
Dim f As New dlgDelivery(e.Cell.Row, Me, e.Cell.Row.Cells("Final_Delivery").Value, con, orderNumber, e.Cell.Row.Cells("Product_Code").Value, exTotal)
f.ShowDialog()
End If
e.Cell.Row.Update()
cmdCheck_Click(sender, New EventArgs)
cmdTotals_Click(sender, New EventArgs)
ElseIf e.Cell.Value = False Then
ugProducts.ActiveRow.Cells("Final_Delivery").Value = DBNull.Value
productCode = ugProducts.ActiveRow.Cells("Product_Code").Value
database.NotDelivered(orderNumber, productCode, con)
Exit Sub
Else
End If
【问题讨论】:
标签: vb.net checkbox infragistics ultrawingrid