加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 在请求C#上添加TextBocex,CheckBoxes

发布时间:2020-12-16 10:00:14 所属栏目:asp.Net 来源:网络整理
导读:我将很快在我的公司开始一个项目,客户希望在门户网站中选择以管理员身份添加文本框或复选框,所以例如最初我可能有类似的东西 姓名[textBox] 电话[textBox] 因此,客户端希望以管理员身份登录并能够添加 姓名[textBox] 电话[textBox] 接收手册[checkBox] //由
我将很快在我的公司开始一个项目,客户希望在门户网站中选择以管理员身份添加文本框或复选框,所以例如最初我可能有类似的东西

姓名[textBox]
电话[textBox]

因此,客户端希望以管理员身份登录并能够添加

姓名[textBox]
电话[textBox]
接收手册[checkBox] //由客户添加.

忘记门户网站和管理员部分..我想知道的是设计这个的最佳方式(用户能够添加元素)

任何想法将不胜感激

问候

解决方法

您可以创建一个额外的aspx表单,其中用户(或管理员)能够定义和创建他/她自己的表单,您提供变量名称,他们选择添加控件,将其保存在特定的方案中数据库,例如

用户窗体:
UserID FormID

形成:
FormID FormName

FormElement:
FormID VariableName ControlType索引

当然,这也可以由管理员完成,并且每个人都可以看到.

要查看特定表单,您可以添加另一个包含以下代码的aspx页面:

protected void Page_Load(object sender,EventArgs e)
    {
        //you saved the FormName or ID to Session when you accessed it
        string formName = Session["FormName"].ToString();
        //this handles getting the elements for this Form from DB
        List<FormElement> elementList = FormElement.GetForForm(formName);
        this.renderForm(elementList);
    }

    private void renderForm(List<FormElement> eList)
    {
        foreach(FormElement fe in eList)
        {
            //Labels left,Controls right,of course this is just a design decision
            if(fe.Index%2==1)
            {
                Label lbl = new Label();
                lbl.Text = fe.Variable;
                lbl.ID = fe.ControlType + fe.Variable;
                divLeft.Controls.Add(lbl);
            }
            else
            {
                dynamic ctrl = null;
                switch (fe.ControlType)
                {
                    case "TextBox":
                        ctrl = new TextBox();
                        break;
                    case "CheckBox":
                        ctrl = new CheckBox();
                        break;
                    default:
                        break;
                }
                ctrl.ID = fe.ControlType + fe.Variable;
                divRight.Controls.Add(ctrl);
            }
        }
    }

在用户点击提交后,您可以通过访问divRight.FindControl(fe.ControlType fe.Variable)来接收输入到这些控件中的值,因为每个Form应该是唯一的.

这种方法假设你使用的是.NET 4.0(因为它是动态的),但是当然你可以在没有它的情况下做到这一点,它只是更多的代码.

如果这是您搜索的内容或是否有帮助,请告诉我.

谢谢,

丹尼斯

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读