请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

lisve2010

论坛元老

7

主题

38

帖子

5011

积分

论坛元老

积分
5011

活字格认证

最新发帖
lisve2010
论坛元老   /  发表于:2011-11-29 10:37  /   查看:7058  /  回复:10
FormDropDown的数据绑定能不能通过外部绑定啊,就是在VS2008的开发界面  我不在后台写代码,只是在界面上放个FormDropDown,程序运行起来的时候,通过外部的一些事件或者什么方法让他自己从数据库加载数据,比如 民族 下拉框

10 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-11-29 10:54:00
沙发
不好意思,你说的FormDropDown是什么产品中的控件呢?是用于WinForms还是ASP.NET平台开发?

一般控件的数据绑定要么是通过VS直接绑定,要么就是通过后台代码实现,如果通过外部事件触发加载数据也得自己写代码实现。
回复 使用道具 举报
lisve2010
论坛元老   /  发表于:2011-11-29 11:01:00
板凳

回复 2# dof 的帖子

:~嗯  是 TX TextControl  中WinForms的,我知道这个比较纠结啦,但是要求实现的功能:程序运行起来,通过菜单 ,在界面上添加  FormDropDown 和其他控件,并通过一些属性或方法,设置数据源就是从指定的数据库库绑定数据,这样我就没办法在后台写代码了  :~  问问有没有实现的方法或者思路啊
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-11-29 11:56:00
地板
“并通过一些属性或方法,设置数据源”这个过程应该是你编码来实现的吧,你把数据从数据库取出来之后应该可以设置给 FormDropDown 啊
回复 使用道具 举报
lisve2010
论坛元老   /  发表于:2011-11-29 13:53:00
5#

回复 4# dof 的帖子

。。。这个可能我描述的不太清楚,程序运行起来后,通过菜单 加入FormDropDown 控件,如果我硬编码指定为民族的数据,这个在第一次加载是可以的,但是我保存文件到本地RTF的文件后,再次打开这个文件( textControl1.Load()加载),还会有民族的数据吗?应该没有了吧?
回复 使用道具 举报
lisve2010
论坛元老   /  发表于:2011-11-29 13:55:00
6#

回复 4# dof 的帖子

补充一下,民族每次都是要从数据库加载最新的,
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-11-29 14:24:00
7#

回复 6# lisve2010 的帖子

你在加载文档之后对文档中的FormDropDown进行重新设置,将数据库中取出来的数据设置给FormDropDown控件,下面是一个简单的代码片段:
  1.         private void loadToolStripMenuItem_Click(object sender, EventArgs e)
  2.         {
  3.             TXTextControl.LoadSettings ls = new TXTextControl.LoadSettings();
  4.             ls.ApplicationFieldFormat = TXTextControl.ApplicationFieldFormat.MSWord;
  5.             ls.ApplicationFieldTypeNames = new string[] { "FORMDROPDOWN" };
  6.             textControl1.Load(TXTextControl.StreamType.MSWord | TXTextControl.StreamType.WordprocessingML, ls);

  7.             DataTable dt = new DataTable();
  8.             dt.Columns.Add("ID");
  9.             dt.Columns.Add("Family");

  10.             dt.Rows.Add(1, "汉族");
  11.             dt.Rows.Add(2, "回族");
  12.             dt.Rows.Add(3, "布衣族");

  13.             foreach (TXTextControl.ApplicationField field in textControl1.ApplicationFields)
  14.             {
  15.                 ArrayList ParameterList = new ArrayList();
  16.                 if (!String.IsNullOrEmpty(field.Name) && field.Name.Equals("fieldFamily"))
  17.                 {
  18.                     //加载ListEntries以外的属性设置
  19.                     foreach (var item in field.Parameters)
  20.                     {
  21.                         if (!item.Contains("w:listEntry w:val"))
  22.                         {
  23.                             ParameterList.Add(item);
  24.                         }
  25.                     }

  26.                     //加载listEntry的属性
  27.                     foreach (DataRow row in dt.Rows)
  28.                     {
  29.                         ParameterList.Add(String.Format("w:listEntry w:val=\"{0}\"", row["Family"]));
  30.                     }

  31.                     field.Parameters = ParameterList.ToArray(System.Type.GetType("System.String")) as string[];
  32.                 }
  33.             }
  34.         }
复制代码
回复 使用道具 举报
lisve2010
论坛元老   /  发表于:2011-11-29 14:30:00
8#

回复 7# dof 的帖子

啊!还贴了代码,麻烦了啊,一会开会了,开完了研究下
回复 使用道具 举报
lisve2010
论坛元老   /  发表于:2011-11-30 09:05:00
9#

回复 8# lisve2010 的帖子

昨晚回去看了下 这个是可以的  和经理要求的有点差异,我再想想看,多谢版主了
回复 使用道具 举报
lisve2010
论坛元老   /  发表于:2011-11-30 09:06:00
10#

回复 7# dof 的帖子

昨晚回去看了下 这个是可以的  和经理要求的有点差异,我再想想看,多谢版主了
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部