繁体   English   中英

如何在这种情况下扩展asp.net应用程序

[英]how to extend asp.net application in this scenario

我有asp.net web application.where我创建用户作为特定公司的注册。在这个公司有3种类型的用户截至目前。 作为管理员,经销商,经理。 所以根据这个我正在改变UI页面。

意味着当Admin(管理员是默认条目)时,创建让我们说Dealer,那么除了一般信息字段(如姓名,联系方式和所有内容)之外,还有不同的UI。 并且在创建管理器时,除了常规信息字段之外,还有不同的UI字段。

为了重复使用这种方式的页面,当选择管理器然后关联他的UI字段只能看到,对经销商来说是相同的。 显然,我从选择用户类型的位置有一个下拉控件。

但是有些如何,如果再由公司添加一个用户类型,我需要根据新用户类型生成功能。 如果我不想更改现有代码,我该如何处理。 感觉是我如何编写通用代码,以便我不需要在后面或在javascript中更改代码。

现在所有这些事情都在规划和实施中。 但在开始之前我必须清楚这件事。 我打算像往常一样在javascript中更改UI结构,我的意思是

if selected User Type is "Dealer then make visible these div's ELSE If User Type is Manager then make visible these divs

虽然添加了新的用户类型,但我想编写通用的javacript。

您可以在数据库中维护字段< - >用户类型关系,并在页面的PageLoad中动态添加标签和文本框。

然后,当出现新类型的用户时,您只需要添加到您的数据中。 您的用户类型也应该在数据库中。

当然,允许用户创建其他用户的代码也必须足够灵活。 所以你需要一个CanCreate表来决定谁可以创建什么类型的用户。 :)

编辑扩展了如何构建您的内容

实际上,我喜欢你关于将html元素存储在数据库中的想法。 这样就可以使用反射来动态获取属性值。 但是,我认为你不能使用数据绑定等等。

所以我会做这样的事情:

public enum ControlType
{
    Label,
    TextBox,
    ...
}

做一个类似的表

  • 用户类型
  • 属性名
  • PropertyLabelName
  • FieldLabelType(int)
  • FieldContentType(int)

然后在pageload上获取UserType,从表中提取数据,找到要放置数据的div,然后添加控件,如:

(pseudocode)

Control label = null;
switch (FieldLabelType)
{
    case ControlType.Label:
        var label = new Label()
        {
            .. all kinds of properties
            Text = PropertyLabelName
        };
        control = label;
        break;
    case ???
        ...
}
if (label != null)
    fielddiv.Add(label);

Control field = null;
switch (FieldContentType)
{
    case ControlType.TextBox:
        var textbox = new TextBox()
        {
            .. all kinds of properties
            Text = new Binding( ... Path = PropertyName)
        };
        control = textbox;
        break;
    case ???
}
if (field != null)
    fielddiv.Add(field);

当然,你需要做一些定位才能让它看起来很漂亮。 也许在表格或代码中的某些东西?

暂无
暂无

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

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