こんにちは。なぜdropdownlistがリロード時にアイテムを再度追加するのですか?(asp.net c#)
今、2日間私を迷惑にさせるエラーがあります。
「BMW」のロゴをクリックしたときに読み込まれるページがあります。 ページがドロップダウンリスト(「モデル」と呼ばれます)を読み込むと、特定のリストから値が取得されます。
ここでは、ページ(F5)をリフレッシュするたびに、「model.item.clear();」を追加してもアイテムが複数回追加されるという問題があります。方法。
ですので、ページを再読み込みしても項目を一度追加したいと思っています(F5)。
NewTransaction.aspxが、これはドロップダウンリストのコード「BMWロゴ」
<a href="NewTransaction.aspx?type=Car&company=BMW"><img class="logo" style="width:200px" src="images/BMW.png" /></a>
これを持っている別のページからコードされているドロップダウンリスト(「モデル」)を持っているページ、 です
ここでは、 "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;
picture of the outputであることを ノート。
他の企業にとっては、他の多くの「ケース」があることに注意してください。
ありがとうございました。
編集:私は、次の
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;
を試してみましたが、その後、私はグーグルクロームでウェブサイトを実行し、それが働いていたが、その後、私はそれを停止し、再びそれを再実行して、ドロップダウンリストは、5回のような項目を追加しました。 ここで何が起こっているのか分かりません。
EDIT 2は:ので、私は、最初の時間が今まですべてが正常に動作していることに気づいたと私はページのGoogleのクロムをリロードしようとすると、私にこのメッセージを置く何:i.imgur.com/EVjLxGD.pngを。
しかし、プロジェクトを閉じてもう一度開くと、データを複数回追加します(ページを何回更新したか+モデルリストからモデルを何回選択するかと同じだと思います)。私はIISからサイトを停止しなければならないのを防ぎますが、他のすべてがうまく動作しているかどうかを確認する方法です。何点チェックする方法を除いて、モデル私は自分のデータベースにBMWを持っていて、そのカウンタを変数に入れ、 "if"条件に別の条件を設定します。これは、モデルをリストに追加して、dropdownlist.Items.Count> Counterそれでももっと良い解決策を探しています。
これはタイプミスか、 'model.Items.Clear();'を使用する必要がありますか? – nelek
ドロップダウンリストの人口を以下に入れてください:if(!IsPostBack){} – Zaki
それはちょうどタイプミスでした、私は今編集しました。 –