2012-02-24 4 views
0

私はPageDownListにPage_Load()イベントを塗りつぶしていますが、子ページがロードされると、このDropDownListはPage_Load()イベントとこのリストの選択された値が失われているため、再度バインドしています。 Masterpageでこの繰り返しバインディングを避ける方法はありますか?私のmasterpageのDropDownListは、子ページが読み込まれるたびにバインドされます。どうすればそのバインディングを回避できますか?

DropDownListから選択した値をQueryStringに渡して、その値に従って子ページにアイテムを表示しています。

私はそうしないとドロップダウンがないだろう、Visual Studioの2011年

if (!IsPostBack) 
    { 
     ViewState["id"] = null; 
     if (drpdwnCategory.Items.Count < 1) 
     { 
      fillDropList(); 
     } 
    } 
    if (Request.QueryString["catId"] != null) 
    { 
     drpdwnCategory.SelectedIndex = _drpdwnCategory.Items.IndexOf(drpdwnCategory.Items.FindByValue(enrpt.getdecrept(Request.QueryString["catId"]))); 
    } 
+1

マスターページで、データをドロップダウンに書き込む前にIsPostBackをチェックしますか? –

+0

@ThitLwinOoはい私はそれをチェックしますが、DropDownListから何かを選択するとMasterPageが再び読み込まれ、IsPostBackがFalseであることを意味する(!IsPostBack)はTrueで、DropDownListをもう一度埋めます。 –

答えて

1
あなたはまだ子供のページのページのロードのドロップダウンをバインドする必要が

を使用してASP.NetでのC#のコードを書いています内部には値があります。

マスターページのクエリ文字列をチェックし、ドロップダウンデータバインド中にクエリー文字列にあるものにドロップダウンのSelectedValueプロパティを設定します。

+0

Thatsはまさに私がやったことであり、DropDownの値も選択しますが、問題は、実行が次の行に行くとDropDownはそのPageLoad()とその値が再び失われるために再び満たされます。 –

+0

PageLoad()にコードを表示できますか? – rikitikitik

+0

これでコードを編集しました。 –

1
if(!IsPostback) 

{ 

// code to only run at first page load here 
// fill dropdown 

} 
+0

これは動作しません。マスターページの子ページがロードされています。 – rikitikitik

0

ドロップダウンに項目があるかどうかを確認できます。アイテムがある場合は、再度バインドしないでください。

関連する問題