2015-06-30 4 views
1

У меня есть динамические выпадающие списки, созданные на основе того, что выбрано в списке. Когда вы нажимаете подтвердить это, когда выпадающие списки создаются. Нажатие на сохранение - это то, где я пытаюсь получить значения. Однако я не могу получить эти значения, которые находятся в выпадающих списках.Извлечь значение из динамического выпадающего списка в placeholder C#

Код:

protected void btnConfirm_Click(object sender, EventArgs e) 
{ 
    int ID = 0; 
    foreach (string value in values) 
    { 
     MyStaticValues.alEdit.Add(value); 
     CreateEditForm(value, ID); 
     ID += 1; 
    } 
    if (values.count != 0) 
    { 
     btnSave.Visible = true; 
     btnConfirm.Enabled = false; 
    } 
}//End of btnConfirm_Click 

protected void CreateEditForm(string Value, int ID) 
{//Creates an edit form for the value inserted. 
    string name = value; 

    //This part adds a header 
    phEditInventory.Controls.Add(new LiteralControl("<h2>" + name + "</h2>")); 
    phEditInventory.Controls.Add(new LiteralControl("<div class=\"clearfix\"></div>")); 

    //Create a label 
    Label lblName = new Label(); 
    lblName.Text = "Name"; 
    lblName.ID = "lblName" + ID; 
    lblName.CssClass = "control-label"; 

    //Create a Drop Down List 
    DropDownList ddlName = new DropDownList(); 
    ddlName.ID = "ddlName" + ID; 
    ddlName.CssClass = "form-control"; 

    //Set default N/A Values For Drop Down List 
    ddlName.Items.Add(new ListItem("N/A", Convert.ToString("0"))); 

    //The Rest of the Values are populated with the database 

    //Adds the controls to the placeholder 
    phEditInventory.Controls.Add(lblName); 
    phEditInventory.Controls.Add(ddlName); 
    phEditInventory.Controls.Add(new LiteralControl("<div class=\"clearfix\"></div>")); 
} //End of CreateEditForm 

protected void btnSave_Click(object sender, EventArgs e) 
{ 
    string name = ""; 

    try 
    { 
     for (int i = 0; i < MyStaticValues.alEdit.Count; i++) 
     { 
      string nameID = "ddlName" + i.ToString(); 
      DropDownList ddlName = (DropDownList)phEditInventory.FindControl(nameID); 
      name = ddlName.SelectedValue.ToString(); 
     } 
    } 
    catch (Exception ex) 
    { 
    } 

    phEditInventory.Visible = false; 
    btnSave.Visible = false; 
    MyStaticValues.alEdit.Clear(); 
}//End of btnSave_Click Function 
+0

'поймать (Exception ех) { }' Если это фактический код, это очень плохо, чтобы скрыть ошибки. –

+0

@SteveWellens Я фактически показываю его на ярлыке ошибки, просто не включил его. –

ответ

1

Ваша проблема заключается в том, что динамически создаваемые выпадающие списки не поддерживаются на постбэка. Когда вы нажимаете кнопку «Сохранить», происходит обратная передача, и страница повторно отображается без динамически созданных выпадающих списков. Эта ссылка может помочь.

Maintain the state of dynamically added user control on postback?

+0

Мне нужно взглянуть на это, когда я найду время, я приму ответ, как только получаю все, что понял. Спасибо. –

Смежные вопросы