2010-12-03 17 views
1

私は、アイテムで設定されたドロップダウンリストコントロールと、現在選択されているアイテムの値を取るコードを持っています。問題は、実際に選択されている項目に関係なく、リストの最初の項目の値のみを取得することです。選択された私は

label1.text=Convert.toInt32(ddlCategory.SelectedValue); 私はのですか私の場合には、常に整数型である現在選択されている項目の値を取得するにはドロップダウンリストの問題

protected void displayCreateCategories() 
{ 
    StoreDataContext db = new StoreDataContext(); 
    var a = from c in db.Categories 
        orderby c.Name 
        select new{catName= c.Name, 
         catId=c.CategoryID}; 

    ddlCategory.DataSource = a; 
    ddlCategory.DataTextField = "catName"; 
    ddlCategory.DataValueField = "catId"; 
    ddlCategory.DataBind(); 
} 

:ここ

は、ドロップダウンを移入するために私のコードです値は常にリスト内の最初の項目です。私はこの上に私の髪を引っ張っています。 :(

答えて

4

私はあなたがするたびに、あなたの選択の検索コードが実行される前に、リストを破壊し、リストを再増殖し、最初の項目を自動的に選択されたページがロードを、リストの読み込みコードを実行している疑いがある。

Page_Load

使用この構造を:私は本当に座ってまで

if (!IsPostBack) 
{ 
    // Initial control population goes here 
} 
+0

これは私をたくさんビット第一を考え出したeページのライフサイクル - イベント名はWinFormsと同じですが非常に異なります。 http://msdn.microsoft.com/en-us/library/ms178472.aspx –

+0

よろしくお願いします。 –

+0

私はこのソリューションを試してみると思います。ページ内の関数を呼び出すと、毎回値がリセットされるので、IsPostBackを使用してください。 – kbvishnu

1

データバインディングはそうあなたがポストバックでデータバインディングの前に選択された値を取得することを確認し、コントロールの選択した値をリセットします

関連する問題