【问题标题】:C# append to placeholderC# 附加到占位符
【发布时间】:2011-01-23 19:06:24
【问题描述】:

所以我正在尝试制作一个动态表单构建器,人们可以在其中添加新表单并向该表单添加字段(添加字段为该新字段带来了几个文本框和下拉选项)。单击“添加新字段”时,有什么方法可以附加到占位符控件?另外,从这些动态添加的控件中获取值的最佳方法是什么?

【问题讨论】:

  • Windows 窗体、Web 窗体、WPF、Silverlight?
  • Web 表单,无论如何我认为,我认为其他任何人都没有占位符控件...

标签: c# dynamic controls placeholder


【解决方案1】:

几个简单的步骤... 1) 创建控件的新实例。填充任何所需的属性。 2) 使用 PlaceHolder 的 .Controls.Add 方法将其添加到 PlaceHolder。 3) 添加控件的事件处理程序。如图所示,通过使用委托,您可以访问控件的值。

        DropDownList ddl = new DropDownList();
        ListItem li0 = new ListItem(string.Empty, "0");
        ListItem li1 = new ListItem("Hello", "1");
        ListItem li2 = new ListItem("World", "2");
        ddl.Items.Add(li0);
        ddl.Items.Add(li1);
        ddl.Items.Add(li2);
        ddl.AutoPostBack = true;
        PlaceHolder1.Controls.Add(ddl);
        ddl.SelectedIndexChanged += delegate(object snd, EventArgs evt) { DoSomething(ddl.SelectedValue); };




    public void DoSomething(string SelectedValue)
    {
        //Do something spectacular here...
    }

【讨论】:

    【解决方案2】:

    这是另一个选项(附加到文字控件)。每次用户单击按钮时,都会创建一个新字段。我不知道如何将这些动态字段添加到数据库中。我应该做一个 foreach 吗?

    protected void Button1_Click(object sender, EventArgs e)
    {
        var thisstring = new StringWriter();
        var writer = new HtmlTextWriter(thisstring);
        var formLabel = new TextBox();
        formLabel.Text = idValue.ToString();
        writer.Write("Field Label:");
        formLabel.RenderControl(writer);
        var typeOptions = new DropDownList();
        typeOptions.DataSource = getfieldtypes();
        typeOptions.DataTextField = "description";
        typeOptions.DataValueField = "id";
        typeOptions.DataBind();
        writer.Write("Field Type:");
        typeOptions.RenderControl(writer);
        writer.WriteBreak();
        Literal1.Text += thisstring;
    
    }
    

    【讨论】:

    • 请考虑将其作为一个单独的问题发布:如何将动态字段添加到数据库
    猜你喜欢
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 2010-11-01
    • 2011-03-30
    • 1970-01-01
    • 2011-03-06
    • 2016-08-22
    • 2015-10-21
    相关资源
    最近更新 更多