C# 更改下拉选择时是否更新标签?

C# 更改下拉选择时是否更新标签?,c#,asp.net,C#,Asp.net,基本上,我希望我的标签priceLabel在用户更改下拉列表sizeDropdown上的选择时自动更新 例如,他们从sizeDropdown中选择一个大小,然后更改一个金额小数,然后将该小数转换为字符串并放入priceLabel。如果用户更改sizeDropdown上的选择,它会自动重新更新priceLabel 这是我目前拥有的,但不起作用: 在HTML中 <asp:DropDownList ID="sizeDropdown" runat="server" OnSelectedIndexC

基本上,我希望我的标签priceLabel在用户更改下拉列表sizeDropdown上的选择时自动更新

例如,他们从sizeDropdown中选择一个大小,然后更改一个金额小数,然后将该小数转换为字符串并放入priceLabel。如果用户更改sizeDropdown上的选择,它会自动重新更新priceLabel

这是我目前拥有的,但不起作用:

在HTML中

<asp:DropDownList ID="sizeDropdown" runat="server" OnSelectedIndexChanged="sizeDropdown_SelectedIndexChanged"></asp:DropDownList>
在另一个示例中,我尝试分配价格:

protected void sizeDropdown_SelectedIndexChanged(object sender, EventArgs e)
{
    double amount = 0;
    if (sizeDropdown.SelectedItem.Equals("50g"))
    {
        amount = 4.99;
    }
    else if (sizeDropdown.SelectedItem.Equals("100g"))
    {
        amount = 7.99;
    }

    priceLabel.Text = amount.ToString();
}
谢谢


编辑:谢谢大家的帮助!我将离开这个ehre,如果有人对我修复它感兴趣,我只是将所选的值转换成字符串,然后使用它,这节省了很多时间。干杯

在sizeDropdown标记中使用此选项

   AutoPostBack="True"
在所有条件下选择editem.Text

    if (sizeDropdown.SelectedItem.Text.Equals("50g"))
    {
       amount = 4.99;
    }
如果在page_load事件中添加项目,则不需要

 if(!Page.IsPostBack)
 {
  sizeDropdown.Items.Add("50g");
  sizeDropdown.Items.Add("100g");
 }

在sizeDropdown标记中使用此选项

   AutoPostBack="True"
在所有条件下选择editem.Text

    if (sizeDropdown.SelectedItem.Text.Equals("50g"))
    {
       amount = 4.99;
    }
如果在page_load事件中添加项目,则不需要

 if(!Page.IsPostBack)
 {
  sizeDropdown.Items.Add("50g");
  sizeDropdown.Items.Add("100g");
 }

嘿,试试这个,我用这个解决了同样的问题。。。。 在desgin中,对于dropdownlist,add AutoPostBack=True

<asp:DropDownList  ID="sizeDropdown" AutoPostBack="True" runat="server" OnSelectedIndexChanged="sizeDropdown_SelectedIndexChanged">

希望这可能对你有用。

嘿,试试这个,我用这个解决了同样的问题。。。。 在desgin中,对于dropdownlist,add AutoPostBack=True

<asp:DropDownList  ID="sizeDropdown" AutoPostBack="True" runat="server" OnSelectedIndexChanged="sizeDropdown_SelectedIndexChanged">

希望这对你有用。

你需要做两件事

在标记中添加AutoPostBack=True以执行回发,默认情况下为false。 绑定代码!Page.IsPostBack,这样您的下拉列表就不会再次绑定并失去所选选项。 HTML


你需要做两件事

在标记中添加AutoPostBack=True以执行回发,默认情况下为false。 绑定代码!Page.IsPostBack,这样您的下拉列表就不会再次绑定并失去所选选项。 HTML

Aspx代码:

Aspx代码:

快速解决方案

请用以下代码替换您的代码

aspx页面:

<asp:DropDownList  ID="sizeDropdown" runat="server"  OnSelectedIndexChanged="sizeDropdown_SelectedIndexChanged" AutoPostBack="True"></asp:DropDownList>
快速解决方案

请用以下代码替换您的代码

aspx页面:

<asp:DropDownList  ID="sizeDropdown" runat="server"  OnSelectedIndexChanged="sizeDropdown_SelectedIndexChanged" AutoPostBack="True"></asp:DropDownList>


显示绑定下拉列表的代码原始帖子:这是在绑定sizeDropdown的位置更改下拉列表选择时发生的事件?向op Now添加了更多代码添加了diff Approach显示绑定下拉列表的代码原始帖子:这是在绑定sizeDropdown的位置更改下拉列表选择时发生的事件bind sizeDropdown?向op NOW添加了更多代码我添加了diff Approach谢谢,但我得到错误属性“SelectedIndexChanged”不是元素“DropDownList”的有效属性不复制粘贴好友放置在SelectedIndexChanged而不是SelectedIndexChanged上。我已经更新了我的答案,请检查。谢谢,但是我得到了错误属性“SelectedIndexChanged”不是元素“DropDownList”的有效属性,请不要复制粘贴好友放置在SelectedIndexChanged而不是SelectedIndexChanged上。我已经更新了我的答案,请检查。在更改下拉选项之前,是否单击按钮?您不需要在该函数中使用if语句来触发selectedIndex Change在更改下拉选项之前是否单击按钮?您不需要在此函数中使用if语句来触发selectedIndex Change嘿,您有答案吗?嘿,您有答案吗?
<asp:DropDownList  ID="sizeDropdown" runat="server"  OnSelectedIndexChanged="sizeDropdown_SelectedIndexChanged" AutoPostBack="True"></asp:DropDownList>
if(!Page.IsPostBack)
{
   sizeDropdown.Items.Add("50g");
   sizeDropdown.Items.Add("100g");
}