2011-08-11 19 views
1

私は奇妙な問題がありました。私は、WebアプリケーションでDropDownList項目を使用します。私は最初にオプションをチェックした後、すべての項目がリストの最後に追加されます。ドロップダウンリストが選択後にさらにリスト項目を追加しました

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
    { 

     machineOS.Text = OSdata.OSDataRetrieve.getOSInfo(DropDownList1.SelectedItem.Text); 

    } 

私はXMLの初期化を使用します。この

protected void Page_Load(object sender, EventArgs e) 
    { 
     string myXMLfile = Server.MapPath("~/VMlist.xml"); 
     DataSet dsMachines = new DataSet(); 
     try 
     { 
      dsMachines.ReadXml(myXMLfile); 
      DropDownList1.DataSource = dsMachines; 
      DropDownList1.DataValueField = "machineID"; 
      DropDownList1.DataTextField = "machineName"; 
      DropDownList1.DataBind(); 

     } 
     catch (Exception ex) 
     { 
      Response.Write(ex.ToString()); 
     } 
    } 

とのSelectedIndexChangedのように初期化さ
。私はまた、あなたがあなたのPage_Loadに以下を追加する必要がありますimage

答えて

1

「の後に」「前」との画像を追加している:

あなたのリストには、ページのポストバックごとにバインドされている
if (!Page.IsPostBack) 
{ 
    //code to bind dropdown 
} 

、どの重複しているのはなぜですか?上記の行を追加すると、すべて設定する必要があります。あなたはあなたがAppendDataBoundItems="false"

にインデックス選択ドロップダウンが発射されたイベントを変更するたびに、それを設定する必要がAppendDataBoundItems="true"

を設定していたので

1

は、あなたのドロップダウンリストが再びバインドさと、再びデータソースの項目を追加しました。

+0

私は実際にそれをしましたが、それは0インデックスに戻らなければ真実である必要がありました – Ben2307

0

page_loadでは、おそらくIsPostbackを確認する必要があります。

現在、各ロード時にリストをリストボックスに再バインドしています。 3つの新しい項目を追加するだけではなく、スクロールバーがあり、すべての項目を再追加していると思われます。

0

私の問題は、手動でdatabind()を呼び出したが、データバインドがネストされたデータバインドされたコントロールであったために、その間にすでに呼び出されていたことがわかった。あなたのデータバインドコールをコメントアウトして、それが修正されているかどうかを確認してください。

関連する問題