【问题标题】:Retrieve value from dynamic dropdownlist in placeholder C#从占位符 C# 中的动态下拉列表中检索值
【发布时间】:2015-09-17 07:50:00
【问题描述】:

我有根据在列表框中选择的内容创建的动态下拉列表。单击确认时,这是创建下拉列表的时间。单击保存是我尝试检索值的地方。但是我无法检索下拉列表中的值。

代码:

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

【问题讨论】:

  • catch (Exception ex) { } 如果那是实际代码,隐藏错误真的很糟糕。
  • @SteveWellens 我实际上将它显示为错误标签,只是没有包含它。

标签: c# asp.net dynamic drop-down-menu webforms


【解决方案1】:

您的问题是回发时未维护动态创建的下拉列表。当您单击“保存”按钮时,会发生回发,并且页面会重新呈现而没有动态创建的下拉菜单。此链接可能会有所帮助。

Maintain the state of dynamically added user control on postback?

【讨论】:

  • 当我有时间时,我将不得不看看这个,一旦我弄清楚了所有这些,我会接受答案。谢谢。
猜你喜欢
  • 1970-01-01
  • 2019-10-02
  • 1970-01-01
  • 2016-01-22
  • 2013-08-30
  • 2020-04-11
  • 2021-11-26
  • 1970-01-01
  • 2014-05-14
相关资源
最近更新 更多