社区
C#
帖子详情
用户在一人员编辑界面中录入一身份证号,将此身份证号拆分成性别及出生日期后,如何将其在界面中立即刷新?(身份证号与性别、出生日期均
success_victory
2002-12-23 07:10:46
用户在一人员编辑界面中录入一身份证号,将此身份证号拆分成性别及出生日期后,如何将其在界面中立即刷新?(身份证号与性别、出生日期均在一个DataTable中,不能用AcceptChanges,因为我还没有更新到数据库)
...全文
152
24
打赏
收藏
用户在一人员编辑界面中录入一身份证号,将此身份证号拆分成性别及出生日期后,如何将其在界面中立即刷新?(身份证号与性别、出生日期均
用户在一人员编辑界面中录入一身份证号,将此身份证号拆分成性别及出生日期后,如何将其在界面中立即刷新?(身份证号与性别、出生日期均在一个DataTable中,不能用AcceptChanges,因为我还没有更新到数据库)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
success_victory
2002-12-23
打赏
举报
回复
还没吃饭。分我明天给你,多谢多谢
success_victory
2002-12-23
打赏
举报
回复
谢谢了!
你的QQ号?在哪儿?
HanYZ
2002-12-23
打赏
举报
回复
首先、如果你用我上面的测试代码可以看到textBox3的内容改变的话,说明EndEdit方法是可以得到你所要的效果的(我通常先用简单的例子尝试成功,再考虑复杂的),然后再去找出你代码中可能的其他原因
success_victory
2002-12-23
打赏
举报
回复
1. 主要是考虑到界面代码与实现代码分离
2. 别的也就是一些oo的原因了
HanYZ
2002-12-23
打赏
举报
回复
应该是你多层传递的问题,不过
多层,如果没有经过WebService的话,可以直接将DataAccess构造的DataTable作为参数传递到WinForm层,你为什么要用新的类去转换呢?
success_victory
2002-12-23
打赏
举报
回复
另外,在我AcceptChanged之后,确显示正常结果,why?
success_victory
2002-12-23
打赏
举报
回复
我做的是三层开发:
主要情况如下:
winform层: 一DataSet ,其中含一PersonTable表
businessFacade层: 含一Mediator,其主要作用是将界面上的PersonTable
转移到person类中。
businessRules层: 含一PersonTable表,其对界面上PersonTable进行引用。
比较你的实例,其差别会不会是不同的类中,消息传递不到窗体上?
success_victory
2002-12-23
打赏
举报
回复
HanYZ(飞虎)老兄:
按道理,你的方法是可以的,但是在我这儿却不行。
HanYZ
2002-12-23
打赏
举报
回复
EndEdit();
BeginEdit();
这两个方法都用在DataRow上,如上例
success_victory
2002-12-23
打赏
举报
回复
我试试
success_victory
2002-12-23
打赏
举报
回复
谢谢你:
HanYZ
2002-12-23
打赏
举报
回复
改变TextBox1的值,回车
HanYZ
2002-12-23
打赏
举报
回复
新建一个Form 放上三个TextBox试一下看看,或许可以帮到你
private System.Data.DataTable dt;
private void Form1_Load(object sender, System.EventArgs e)
{
this.dt = new DataTable();
dt.Columns.Add("X",typeof(System.String));
dt.Columns.Add("Y",typeof(System.String));
DataRow dr = dt.Rows.Add(new object[]{"1","2"});
this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.dt, "X"));
this.textBox3.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.dt, "Y"));
this.dt.ColumnChanged += new DataColumnChangeEventHandler(RowChange);
}
private void RowChange(object sender, DataColumnChangeEventArgs e)
{
if (e.Column.ColumnName == "X")
{
e.Row["Y"] = e.Row["X"];
e.Row.EndEdit();
}
}
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if (e.KeyChar == (char)13)
{
textBox2.Focus();
}
}
success_victory
2002-12-23
打赏
举报
回复
to HanYZ(飞虎):
谢谢谢谢:
我刚才试过。 但我form上的增加操作是通过CurrencyManager对象来实现的,它没有beginEdit()
再请指教!
success_victory
2002-12-23
打赏
举报
回复
yarshray(saga jion):
多谢,多谢。
现在的关键问题实际上就是我能不能通过TB的列来只知道相应绑定的
控件名。
注: 我用的是一系列的控件来绑定DataTable的。
HanYZ
2002-12-23
打赏
举报
回复
EndEdit()调用后你可以立即调用BeginEdit();继续编辑
同时控制不要进行数据验证
yarshray
2002-12-23
打赏
举报
回复
要实现立即刷新必须要有个东西来通知程序,让程序知道
所以必须要有个事件来通知程序你可以试试自定义事件
然后把重写datagrid的WndProc来检查
success_victory
2002-12-23
打赏
举报
回复
HanYZ(飞虎):
多谢多谢。
此时用户的编辑还没完毕,可能还有一些非空的字段。
另外我的界面代码与验证代码是分开的。
success_victory
2002-12-23
打赏
举报
回复
HanYZ(飞虎) :
多谢多谢。是一系列绑定控件。
问题:
我先说说我的情况:
1.winform程序。
2.form中有一DataSet,form中的控件与DataSet 中的personTable绑定
3.person类中也有一个DataTable TB,其实现与Form中PersonTable的引用
4.先在Person类的TB的列改变事件,录入身份证号,并解析身份证号,
分别赋与另两个列:sexNo,birthday
5.窗体上绑定sexNo,与BirthDay的控件如何立即刷新?
急切盼复!
HanYZ
2002-12-23
打赏
举报
回复
不能用AcceptChanges,你可以用EndEdit()
加载更多回复(4)
Excel百宝箱 9.0 破解版 批量导入图片等200种功能
【百家姓与字母序列】运行后可以在单元格
中
进行百家姓与字母填充,提升
录入
速度 【一键隐藏非使用区】对空白区域瞬间隐藏起来。可以选择作用对象是当前表还是所有工作表。恢复时也只要瞬间完
成
(不到1秒) 【文本、...
基于SSM的民宿短租系统(毕设)
入住信息查看 查询入住
人员
的信息可以根据
身份证号
或者房间号等信息进行
用户
信息的查询展示。 换房退房:此功能主要是进行退房和换房的操作。
用户
可以换房,或者是退房操作。 (4)留言管理 ...
C#
110,533
社区成员
642,574
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章