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

标签 javascript asp.net

我有 ASP.NET Web 应用程序。我正在其中创建用户作为特定公司的注册。到目前为止,该公司有 3 种类型的用户。作为管理员、经销商、经理。所以根据这个我正在更改 UI 页面。

意味着当管理员(管理员是默认条目)创建经销商时,除了常规信息字段(如姓名、联系方式等)之外,还有不同的 UI。创建管理器时,除了常规信息字段之外,还有不同的 UI 字段。

为了重用我正在使用的页面,当选择经理时,相关的 UI 字段将仅可见,对于经销商而言也是如此。显然有一个下拉控件,我可以在其中选择用户类型。

但是,后来如果公司添加了一种用户类型,我需要根据新用户类型生成功能。如果我不想更改现有代码,我该如何处理。意义是我如何编写通用代码,这样我就不需要再次更改后面的代码或 JavaScript 中的代码。

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

如果选定的用户类型是“经销商,则使这些 div 可见”,否则如果用户类型是“经理”,则使这些 div 可见

我想编写通用的 javacript ,尽管添加了新的用户类型。

最佳答案

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

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

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

编辑扩展了如何构建内容

实际上,我喜欢你关于将 html 元素存储在数据库中的想法。这将节省您使用反射来动态获取属性值的麻烦。但是,我认为您无法使用数据绑定(bind)等。

所以我会做这样的事情:

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

制作一个类似的表格

  • 用户类型
  • 属性名称
  • 属性标签名称
  • FieldLabelType(整数)
  • FieldContentType(整数)

然后在页面加载时,您获取 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);

当然,您需要进行一些定位才能使其看起来很漂亮。也许插入表格或代码中的东西?

关于javascript - 在这种情况下如何扩展asp.net应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5167665/

相关文章:

javascript - 按指定的 data-* 顺序对元素进行排序

c# - 使用 Twitter Bootstrap、C#、asp.net 和 javascript 上传文件

javascript - textContent 与 innerText 之间的区别

jquery - Internet Explorer 11 默认文档查看模式为 Edge

javascript - "Floating"Gridview标题

c# - 如何防止 HttpWebRequest 因 Azure Web App 超时而响应过长

c# - 如何格式化 serilog 属性名称?

javascript - fabric.js - 重新调整尺寸后获得新高度

javascript - 如何使用 URL.createObjectURL?

javascript - 如何调用Javascript事件函数