2011-07-13 14 views
1

C#とASP.NETの新機能です。CheckBoxListのDataBind().Selectedを取得する際の問題

私はDeploySelectListという名前のCheckBoxListを持っています。次のようにリストにアイテムを手動で追加すると、[Submit]ボタンをクリックした後に.Selectedアイテムを取得するのに問題はありません。

protected void Page_Load(object sender, EventArgs e) { 
     DeploySelectList.Items.Add("test 1"); 
     DeploySelectList.Items.Add("test 2"); 
     DeploySelectList.Items.Add("test 3"); 
} 

私はListオブジェクトへのデータバインディングを作成する場合は、すべてのDeploySelectList項目は常に.Selected =偽を持っています。

protected void Page_Load(object sender, EventArgs e) { 
     List<String> list = DBFunctions.getDeploymentSelection(); 
     DeploySelectList.DataSource = list; 
     DeploySelectList.DataBind(); 
} 

なぜこれが起こっていますか?

ありがとうございました。

EDIT:下記のコメントに従って、if (!IsPostBack)ブロックのコードを追加すると問題が解決しました。私はまだ、手動でDataBindingを行うのと比べて問題が同じではなかった理由を理解していません。どちらの場合も選択は失われているようです。

この質問は削除する必要がありますか?

+1

コードをif(!IsPostback)ブロックに入れる必要があるのでしょうか? ref:http://msdn.microsoft.com/en-us/library/system.web.ui.page.ispostback.aspx –

答えて

1

以下のリンクは、ページイベントが発生した順序を示しています。

http://msdn.microsoft.com/en-us/library/ms178472.aspx

そして、既に述べたように、あなたは、ページの読み込みにポストバックにリストを再構築を停止する必要があります。イベントコードが実行されたときに選択したプロパティを確認することができます。

関連する問題