找回密码
 立即注册

QQ登录

只需一步,快速开始

ghostlyt

初级会员

18

主题

76

帖子

214

积分

初级会员

积分
214

活字格认证微信认证勋章

ghostlyt
初级会员   /  发表于:2018-12-5 11:47  /   查看:3771  /  回复:5
条件:
C1TrueDBGrid的某一列的NumberFormat设为"",
同时EditMask设为0000/00/00
绑定数据的初始值为""

现象1:该列中输入12345678,BeforeColUpdate事件中取得该列的Value为"12345678",Text为"1234/56/78"
现象2:该列中输入1,              BeforeColUpdate事件中取得该列的Value为"1",Text为"1___/__/__"
现象3:将输入的值删除,         BeforeColUpdate事件中取得该列的Value为"____/__/__",Text为"____/__/__"

问题:
在删除掉已有的值后,取得的Value为什么不是""?
如何才能判断出当前单元格的输入值为""(为了和原始值比较是否发生变更)?

5 个回复

倒序浏览
JeffryLI
葡萄城公司职员   /  发表于:2018-12-5 17:20:15
沙发
您好,这个问题我没能实现您的这个场景,可否给我一个您做的demo。
请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
ghostlyt
初级会员   /  发表于:2018-12-5 17:48:50
板凳
在新的窗体中放入C1TrueDBGrid,然后追加以下代码(VB)
  1. Protected Overrides Sub OnLoad(e As EventArgs)
  2.         MyBase.OnLoad(e)
  3.         Dim dt As New DataTable
  4.         dt.Columns.Add("id", GetType(Int64))
  5.         dt.Columns.Add("name", GetType(String))
  6.         dt.Columns.Add("birthday", GetType(String))
  7.         dt.Columns.Add("married", GetType(Boolean))
  8.         dt.Rows.Add(1, "", "", False)
  9.         dt.Rows.Add(2, "R1234", "2018/10/25", True)
  10.         dt.Rows.Add(3, "R12345", "2018/10/25", False)

  11.         Me.C1TrueDBGrid1.Columns.Clear()
  12.         Dim dc As C1DataColumn

  13.         dc = New C1DataColumn
  14.         Me.C1TrueDBGrid1.Columns.Add(dc)
  15.         dc.DataType = GetType(Int64)
  16.         dc.DataField = "id"
  17.         dc.NumberFormat = "###,###"
  18.         dc.Caption = "id"
  19.         Me.C1TrueDBGrid1.Splits(0).DisplayColumns(0).Visible = True

  20.         dc = New C1DataColumn
  21.         Me.C1TrueDBGrid1.Columns.Add(dc)
  22.         dc.DataType = GetType(String)
  23.         dc.DataField = "name"
  24.         dc.Caption = "name"
  25.         Me.C1TrueDBGrid1.Splits(0).DisplayColumns(1).Visible = True

  26.         dc = New C1DataColumn
  27.         Me.C1TrueDBGrid1.Columns.Add(dc)
  28.         dc.DataType = GetType(String)
  29.         dc.DataField = "birthday"
  30.         dc.NumberFormat = ""
  31.         dc.EditMaskUpdate = True
  32.         dc.EditMask = "0000/00/00"
  33.         dc.Caption = "birthday"
  34.         Me.C1TrueDBGrid1.Splits(0).DisplayColumns(2).Visible = True

  35.         dc = New C1DataColumn
  36.         Me.C1TrueDBGrid1.Columns.Add(dc)
  37.         dc.DataType = GetType(Boolean)
  38.         dc.DataField = "married"
  39.         dc.ValueItems.Presentation = PresentationEnum.CheckBox
  40.         dc.Caption = "married"
  41.         Me.C1TrueDBGrid1.Splits(0).DisplayColumns(3).Visible = True

  42.         Me.C1TrueDBGrid1.SetDataBinding(dt, Nothing, True)

  43.         With C1TrueDBGrid1
  44.             .MarqueeStyle = C1.Win.C1TrueDBGrid.MarqueeEnum.HighlightCell
  45.             .AllowAddNew = False
  46.             .AllowUpdate = True
  47.             .AllowDelete = False
  48.             .AllowRowSelect = True
  49.             .AllowColSelect = False
  50.             .AllowArrows = True
  51.             .TabAction = C1.Win.C1TrueDBGrid.TabActionEnum.GridNavigation
  52.             .WrapCellPointer = True
  53.         End With

  54.     End Sub


  55.     Private Sub C1TrueDBGrid1_BeforeColUpdate(sender As Object, e As BeforeColUpdateEventArgs) Handles C1TrueDBGrid1.BeforeColUpdate

  56.         Console.WriteLine("NewValue:'{0}', OldValue:'{1}'", e.Column.DataColumn.Value.ToString, e.OldValue.ToString)
  57.     End Sub
复制代码
回复 使用道具 举报
JeffryLI
葡萄城公司职员   /  发表于:2018-12-5 18:21:36
地板
好的 ,我明天帮您测试  尽快给你答复。
请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
ghostlyt
初级会员   /  发表于:2018-12-25 22:44:55
5#
这个帖子什么结果了?
回复 使用道具 举报
JeffryLI
葡萄城公司职员   /  发表于:2018-12-26 09:55:57
6#
本帖最后由 JeffryLI 于 2018-12-26 11:24 编辑

您好,已经反馈我们的产品组了,ID Bug 359259:,还没得到回复,有消息我会立即告知您的。
请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部