繁体   English   中英

ASP.NET 问题中的动态控制

[英]Dynamic Controls in ASP.NET Issue

我在 asp.net 中进行动态控制,到了我可以 go 无处可去的地步。 我正在为员工的 201 文件创建一个页面,我希望该页面变得动态并且控件将来自数据库。 有一个单独的系统用于构建控件并设置其属性。 这里的任何人都可以给我一些建议,如何做到这一点,数据库结构是什么以及要考虑的事情是什么。 TIA。

伙计们,这是我的动态控件数据库的当前设计:

Table Name : UM_WebObjectCategories
Columns:
    WebObjectCategoryID bigint
    ParentID bigint
    IsParent bit
    WebObjectCategory varchar

Table Name : UM_WebObjectHRIS201FileAccess
Columns:
    WebObjectHRIS201FileAccessID bigint
    HRIS201FileAccessID bigint
    WebObjectID bigint

Table Name : UM_WebObjectObjectsProperties
Columns :
    WebObjectObjectsPropertiesID bigint
    WebObjectID bigint
    WebObjectPropertyID bigint
    StringValue varchar
    BooleanValue bit
    IntValue int
    LongValue bigint

Table Name : UM_WebObjectProperties
Columns :
    WebObjectPropertyID bigint
    WebObjectProperty varchar
    ValueType varchar

Table Name : UM_WebObjects
Columns :
    WebObjectID bigint
    WebObjectName varchar
    WebObjectTypeID bigint
    WebObjectCategoryID bigint

Table Name : UM_WebObjectTypes
Columns : 
    WebObjectTypeID bigint
    WebObjectType varchar

Table Name : UM_HRIS201Access
Columns :
    HRIS201AccessID bigint
    HRIS201Access varchar

希望你能帮助我做出决定。 谢谢。

我知道这很旧,但我已经构建了这样一组可以从数据库生成的“动态控件”。 希望这对以后遇到这篇文章的人有所帮助。 这些控件使用 .NET 的 Provider model,因此可以接受任何数据源。

https://github.com/tenshino/RainstormStudios/tree/master/RainstormStudios.Web/UI/WebControls/DynamicForms

基本提供程序类是同一个 repo 的一部分,可以在这里找到:

https://github.com/tenshino/RainstormStudios/blob/master/RainstormStudios.Web/Providers/DynamicFormProvider.cs

我为我的公司做过类似的事情。 就像提到的 devcoder 一样,你真的应该找一个高级程序员。 如果你不知道从哪里开始,你很有可能会遇到很多问题。

这里有一些提示,以防您/或其他任何人需要创建类似的系统。

  • 数据库
    • 表格来保存页面的布局
    • 表格来保存页面的问题
    • 查找表以保存问题类型
    • 存储答案的表
  • web侧
    • map 特定控件的问题类型(用户控件也可以)
    • 如果您使用用户控件,请确保先在页面上注册它们
    • 每次回发都需要重新创建动态控件
    • 在初始化 state 上创建它们,以便它们可以与视图 state 一起使用(只有在根本不回发或使用 AJAX 或视图加载/拥有自己的模式时才能打破此规则)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM