lisve2010 发表于 2011-11-29 10:37:00

FormDropDown的事件问题

FormDropDown的数据绑定能不能通过外部绑定啊,就是在VS2008的开发界面我不在后台写代码,只是在界面上放个FormDropDown,程序运行起来的时候,通过外部的一些事件或者什么方法让他自己从数据库加载数据,比如 民族 下拉框

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

回复 4# dof 的帖子

。。。这个可能我描述的不太清楚,程序运行起来后,通过菜单 加入FormDropDown 控件,如果我硬编码指定为民族的数据,这个在第一次加载是可以的,但是我保存文件到本地RTF的文件后,再次打开这个文件( textControl1.Load()加载),还会有民族的数据吗?应该没有了吧?

lisve2010 发表于 2011-11-29 13:55:00

回复 4# dof 的帖子

补充一下,民族每次都是要从数据库加载最新的,

ZenosZeng 发表于 2011-11-29 14:24:00

回复 6# lisve2010 的帖子

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

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

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

            foreach (TXTextControl.ApplicationField field in textControl1.ApplicationFields)
            {
                ArrayList ParameterList = new ArrayList();
                if (!String.IsNullOrEmpty(field.Name) && field.Name.Equals("fieldFamily"))
                {
                  //加载ListEntries以外的属性设置
                  foreach (var item in field.Parameters)
                  {
                        if (!item.Contains("w:listEntry w:val"))
                        {
                            ParameterList.Add(item);
                        }
                  }

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

                  field.Parameters = ParameterList.ToArray(System.Type.GetType("System.String")) as string[];
                }
            }
      }

lisve2010 发表于 2011-11-29 14:30:00

回复 7# dof 的帖子

啊!还贴了代码,麻烦了啊,一会开会了,开完了研究下

lisve2010 发表于 2011-11-30 09:05:00

回复 8# lisve2010 的帖子

昨晚回去看了下 这个是可以的和经理要求的有点差异,我再想想看,多谢版主了

lisve2010 发表于 2011-11-30 09:06:00

回复 7# dof 的帖子

昨晚回去看了下 这个是可以的和经理要求的有点差异,我再想想看,多谢版主了
页: [1] 2
查看完整版本: FormDropDown的事件问题