C # добавить к заполнителю - PullRequest
2 голосов
/ 04 марта 2010

Поэтому я пытаюсь создать динамический конструктор форм, в котором люди могут добавлять новую форму и добавлять поля к этой форме (поле добавления отображает несколько текстовых полей и раскрывающихся опций для этого нового поля). Есть ли способ добавить элемент управления заполнителем при нажатии «Добавить новое поле»? Кроме того, каков наилучший способ получить значения из этих динамически добавленных элементов управления?

Ответы [ 2 ]

0 голосов
/ 05 марта 2010

Это другой вариант (добавление к буквальному элементу управления). Каждый раз, когда пользователь нажимает кнопку, создается новое поле. Я не знаю, как добавить эти динамические поля в базу данных. Должен ли я сделать 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;

}
0 голосов
/ 05 марта 2010

Несколько простых шагов ... 1) Создайте новый экземпляр элемента управления. Заполните любые желаемые свойства. 2) Добавьте его в PlaceHolder, используя метод PlaceHolder .Controls.Add. 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...
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...