[英]Update a label when I change a dropdown selection?
基本上,我希望我的標簽priceLabel在用戶更改下拉列表大小時自動更新。
例如,他們從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,如果有人對我感興趣,那么我將其固定只是將選擇的值轉換為字符串,然后使用該字符串節省了很多時間。 干杯!
在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");
}
你需要做兩件事
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");
}
嘿,嘗試這個,我有同樣的問題可以解決。...在設計中,為下拉列表添加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();
}
希望這對您有用。
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 = "";
}
}
快速解決方案
請用以下代碼替換您的代碼。
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");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.