2016-07-26 2 views
0

私のチェックボックスから選択した値を取得しようとしています(単一の結果/チェックのみを話しています)、私のボタンのonClickイベントでその値を取得したいのですが、私はボタンをクリックすると、ドロップダウンリストから値を取得し、チェックボックスリストから値を取得することはできません。理由はわかりませんソースとeveything罰金を見ているようだが、私は値を取得することはできません:/C#ASP.NETチェックボックスが選択された単一の値

ここではコードです:

protected void btnSearch_Click(object sender, EventArgs e) 
    { 
     var dropDown_one= Convert.ToInt32(dropOne.SelectedValue); //THIS IS OK 
     var dropDown_two = Convert.ToInt32(dropTwo.SelectedValue);//THIS IS OK 
     var checkBox = Convert.ToInt32(checkBox.SelectedValue); //<- here I got error, because I am trying to convert "" value to int 

    } 

と、ページの読み込みに私はTHIをしましたS:

checkBox.DataSource =SomethingFromDatabase(); 
     checkBox.DataTextField = "Name"; 
     checkBox.DataValueField = "ID"; 
     checkBox.DataBind(); 

だから私は、データベースから値を持って、私はそれらをチェックすることができていますが、私は私のボタンをクリックすると、CheckBoxListのは私がしても、何も選択しなかったようなので、その値は「」であると言うので、私はエラーを得ました私がやった..:/

みんなありがとう、 乾杯

答えて

0

Page_Loadイベントハンドラがすべてのポストバック上で実行されます。毎回データバインディングコードを呼び出すと、CheckBoxListがクリアされて補充され、選択した内容が失われます。

この問題を解決するには、if (!IsPostBack)条件ブロック内のデータをバインドすることです:

void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     checkBox.DataSource = SomethingFromDatabase(); 
     checkBox.DataTextField = "Name"; 
     checkBox.DataValueField = "ID"; 
     checkBox.DataBind(); 
    } 
} 
+0

私はこれがこの問題の答えだと思いますが、家に帰るとすぐに試してみることにします。答えとしてマークしてください:)ありがとう –

+0

これは答えでした!ありがとう@ConnorsFan! :) –

0

チェックが無効の状態でNULLを返すとに変換しますので、チェックボックスが無効な状態ではない場合Intはエラーをスローします。チェックボックスの値をNULLにチェックして変換してください。

関連する問題