你好,如果這已被覆蓋之前,我很抱歉。爲什麼dropdownlist在重新加載時再次添加項目?(asp.net c#)
現在有一個令我煩惱的錯誤是2天。
我有一個頁面,當用戶點擊一個「寶馬」徽標 當頁面加載下拉列表(稱爲「模型」)將從某個列表中獲取值時將加載。
這裏的問題是,無論何時刷新頁面(F5),即使添加了「model.item.clear()」,它也會多次添加項目。方法。
所以底線是,我想只添加一次項目,即使我重新加載頁面(F5)。
的NewTransaction.aspx是有下拉列表(「模型」)的頁面, 這是從具有「寶馬標誌」
<a href="NewTransaction.aspx?type=Car&company=BMW"><img class="logo" style="width:200px" src="images/BMW.png" /></a>
此另一個頁面的代碼在下拉列表的代碼NewTransaction.aspx
<asp:DropDownList ID="model" runat="server" CssClass="inputs" OnSelectedIndexChanged="model_SelectedIndexChanged"></asp:DropDownList>
這裏是我從列表中輸入具有「Car」對象的數據的部分。 注意,該代碼是在「的Page_Load」 方法
switch (Server.UrlDecode(Request["company"]).ToString())
{
case "BMW":
model.Items.Clear();
foreach (Car n in OverLand.car)
{
if (n.made == "BMW")
{
model.Items.Add(n.model);
}
}
break;
請注意,它有許多其他公司的「案件」。
謝謝。
編輯:我嘗試了以下
switch (Server.UrlDecode(Request["company"]).ToString())
{
case "BMW":
if (!IsPostBack)
{
foreach (Car n in OverLand.car)
{
if (n.made == "BMW")
{
model.Items.Add(n.model);
}
}
}
break;
,然後我跑的網站在谷歌Chrome和它的工作但後來我停止了它並重新運行它,並在下拉列表添加的物品,如5倍。 我不知道這裏發生了什麼.-。
編輯2:所以我注意到,有史以來第一次一切正常,當我嘗試重新加載頁面谷歌Chrome把這條消息給我:i.imgur.com/EVjLxGD.png。
但是,如果我關閉了項目並重新打開它,它會多次添加數據(我認爲這相當於頁面刷新次數+從模型列表中選擇模型的次數)和阻止我必須停止從IIS的網站,但當然這只是一種方法來看看其他一切工作是否正常,我想不出一個想法停止它,除了做一個方法,將檢查多少模型我在我的寶馬數據庫中,並將該計數器放入一個變量,並在我已用於添加模型到列表中的「if」條件中添加另一個條件,以便在dropdownlist.Items.Count> Counter之後停止添加。我仍在尋找更好的解決方案。
它是一個錯字或你必須使用'model.Items.Clear();'? – nelek
將下拉列表的內容放在裏面:if(!IsPostBack){} – Zaki
這只是一個錯誤,現在我編輯它。 –