更改下拉选择时更新标签?

时间:2014-04-18 05:09:26

标签: c# asp.net

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

例如,他们从sizeDropdown中选择一个大小,然后更改十进制数量,然后将此十进制转换为字符串并将其放入priceLabel。如果用户在sizeDropdown上更改了选择,则会自动重新更新priceLabel。

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

在HTML

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

然后在aspx.cs

在一种方法中添加值:

sizeDropdown.Items.Add("50g");
sizeDropdown.Items.Add("100g");

另一个我尝试分配价格:

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,如果任何人对ow感兴趣我修复它只是将所选值转换为字符串然后使用保存了很多hastle的字符串。干杯!

5 个答案:

答案 0 :(得分:1)

在sizeDropdown标签

中使用此功能
   AutoPostBack="True"
在所有情况下

SelectedItem.Text

    if (sizeDropdown.SelectedItem.Text.Equals("50g"))
    {
       amount = 4.99;
    }

如果您在page_load事件中添加项目,否则不需要

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

答案 1 :(得分:1)

你需要做两件事

  • 在标记中添加AutoPostBack="True"以执行回发,默认情况下为false。
  • !Page.IsPostBack中绑定代码,以便您的下拉列表不再绑定并松开所选选项。

HTML

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

代码背后

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

答案 2 :(得分:0)

嘿试试这个我有同样的问题解决这个.... 在设计中,为下拉列表添加AutoPostBack =“True”。

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

在代码背后.....

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;
    }
   else if (sizeDropdown.SelectedItem.Equals("150g"))
   {
      amount = 9.99;
   }
      priceLabel.Text = amount.ToString();
}

希望这对你有用。

答案 3 :(得分:0)

Aspx代码:

<asp:DropDownList ID="sizeDropdown" runat="server" AutoPostBack="True" 
            onselectedindexchanged="sizeDropdown_SelectedIndexChanged">
            <asp:ListItem>Select</asp:ListItem>
            <asp:ListItem Value="4.99">50gms</asp:ListItem>
            <asp:ListItem Value="7.99">100g</asp:ListItem>
        </asp:DropDownList>
        <asp:Label ID="priceLabel" runat="server" Text="Label"></asp:Label>

.Cs代码

 protected void sizeDropdown_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (sizeDropdown.SelectedItem.Text != "Select")
        {
            priceLabel.Text = sizeDropdown.SelectedItem.Value;

        }
        else
        {
            priceLabel.Text = "";
        }
    }

答案 4 :(得分:0)

快速解决方案

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

aspx页面:

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

代码页:

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