文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>动态表单的技术实现

动态表单的技术实现

时间:2011-05-03  来源:陈高

1.1. 动态表单的技术实现

 if (dr["ET_ConfigType"].ToString() == "1") // 文本类型

    {

           GridViewDataColumn col = new GridViewDataColumn();

           col.Header = dr["ET_ConfigItem"].ToString().Trim();

           col.UniqueName = dr["KeyWord"].ToString();

           col.Width = 100;

           col.Footer = "string";

           col.DataType = Type.GetType("string");

           col.DataType = typeof(string);

           col.DataMemberBinding = new Binding(string.Format("{0}", dr["KeyWord"].ToString()));

           this.RadGridView1.Columns.Insert(i + 1, col);

      }

      else if (dr["ET_ConfigType"].ToString() == "5")//下拉列表

{

GridViewComboBoxColumn cboCM = new GridViewComboBoxColumn();

              cboCM.Header = dr["ET_ConfigItem"].ToString().Trim();

              cboCM.UniqueName = dr["KeyWord"].ToString();

              cboCM.Width = 100;

              cboCM.Footer = "ComboBox";

              string comboxTypeID = dr["ComboxType"].ToString();

              DataRow[] drNew = dt_EntityType.Select(string.Format(@"belongID = '{0}'",comboxTypeID));

               List<CMBSoure> list = new List<CMBSoure>();

               if (drNew.Length > 0)

               {

                                 for (int k = 0; k < drNew.Length; k++)

                                {

                                    CMBSoure cmb = new CMBSoure();

                                    cmb.CMBName = drNew[k]["TypeName"].ToString();

                                    cmb.CMBValue = drNew[k]["TypeID"].ToString();

                                    list.Add(cmb);

                                }

                  }

                  else

                   {

                                CMBSoure cmb = new CMBSoure();

                                cmb.CMBName = "暂无信息";

                                cmb.CMBValue = "暂无信息";

                                list.Add(cmb);

                    }

 cboCM.DataMemberBinding = new Binding(dr["KeyWord"].ToString());

                   cboCM.SelectedValueMemberPath = "CMBValue";

                    cboCM.DisplayMemberPath = "CMBName";

                   cboCM.ItemsSource = list;
                            this.RadGridView1.Columns.Insert(i + 1, cboCM);

       }

通过

col.UniqueName = dr["KeyWord"].ToString col.DataMemberBinding = new Binding(string.Format("{0}", dr["KeyWord"].ToString())

来实现对应关系的建立。而且我们还通过需要同的类型,来加载绑定列的相关信息。

 1.1.4. 取得的成果

应用动态表单技术,满足表单多变性的要求,具有较高的灵活性。动态表单可维护性好,可根据具体需求进行动态配置,可在很多管理信息系统中得到应用,减少重复开发工作。

具体实现效果可见工程项目管理系统工程范围信息维护页面,页面菜单路径:工程项目管理系统->项目范围管理->项目范围信息管理->工程范围信息维护。

1.1.5. 存在问题及改进

动态表单采用二维数据库表进行数据的存储,当数据量大或表单数据项多时,对性能会有一定的影响。动态表单具有局限性,适用于业务数据量小和动态多变的特点的业务系统,而当业务数据量大且表单结构稳定的情况下,建议采用固定表单的方式。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载