【问题标题】:DropDownList selects top value onlyDropDownList 仅选择最高值
【发布时间】:2016-10-25 09:09:08
【问题描述】:

我有一个文本框,将通过单击按钮来填充。 当我单击按钮时,它会比较一些值,然后将下拉列表中的值复制到第一个文本框。

但是下拉列表只复制第一个值,即使我选择了第二个或第三个值,它总是会复制第一个。

这是我的代码:

protected void BtnOrderKoppelen_Click(object sender, EventArgs e)
    {
        if(DDLLijnRequest.Text == "Lijn1")
        {
            TbProd5.Text = DDLVrijgeefOrder.Text;
        }

        else if (DDLLijnRequest.Text == "Lijn2")
        {
            TbProd6.Text = DDLVrijgeefOrder.Text;
        }

        else if (DDLLijnRequest.Text == "Lijn3")
        {
            TbProd7.Text = DDLVrijgeefOrder.Text;
        }

        else if (DDLLijnRequest.Text == "Lijn4")
        {
            TbProd8.Text = DDLVrijgeefOrder.Text;
        }

    }

DDLLijnRequest= 我的生产线比较的下拉列表

TbProd(5 到 8) = 是来自 DDLVrijgeefOrder 的数据必须转到的文本框

DDLVrijgeefOrder = 一个下拉列表,我在其中选择一个订单并希望它复制到文本框。

有没有办法复制我在 DDLVrijgeefOrder 中选择的任何值?

这是我的页面加载,它与按钮单击或下拉列表没有任何联系。我必须在这里添加一些东西吗? :

        protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["MesLogin"] == null)
        {
            Response.Redirect("StartPagina.aspx");
        }
        else
        {
            LblSession.Text = "Welcome" + Session["MesLogin"].ToString();
        }

    }

提前谢谢你!

【问题讨论】:

  • 显示你的Page_Load
  • 将其添加到问题中,我对 asp.net 很陌生,所以不知道它可能会对我的下拉列表产生影响。
  • 我可能会使用 switch 语句并避免在您的代码中使用“魔术字符串” - 在文件顶部将此私有只读常量 - 这不会解决您的问题,但会清理代码跨度>
  • @rico 你是如何绑定你的下拉菜单的?
  • @Webruster im 使用 Visual Studio,它提供了通过单击按钮将它们与我的数据库绑定的选项。我使用我的 sqldatasource 连接在 html 中生成我的连接代码。

标签: c# asp.net list copy


【解决方案1】:

希望您在 Page_load 事件中始终绑定下拉值。下拉数据源应仅在第一次绑定,否则将始终绑定到第一个值。

例子:

Void Page_Load()
{
  if(!IsNotPostBack)
  {
    // bind drop down values here
  }
}

如果上述解决方案没有帮助,请发布更多代码,例如 Page_Load 事件

【讨论】:

    【解决方案2】:

    根据您的问题上下文,您使用的是 WinForms 对吗?

    以下链接很好地回答了您的问题:

    How to create a drop down menu in WinForms and C#

    请注意,您可以将任何类型的项目添加到 ComboBox。如果你不 指定 DisplayMember 和 ValueMember 属性,ComboBox 使用对象的 ToString 方法来确定文本 显示,您可以检索选定的项目(不是选定的值) 通过 SelectedItem 属性。

    class Person
    {
     public int PersonID { get; set }
     public string FirstName { get; set; }
     public string LastName { get; set; }
    
     public override string ToString()
     {
         return FirstName + " " + LastName;
     }
    }
    

    最终你可以做到

    Person selectedPerson = (Person)myComboBox.SelectedItem;
    int personID = selectedPerson.PersonID;
    

    【讨论】:

    • 我正在使用 asp.net,但会看看这个!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    相关资源
    最近更新 更多