2

私はC#とAsp.Netに少し慣れていないので、この質問は繰り返し聞こえるかもしれませんが、この特定の問題の解決策を見つけることができません。

HTMLページに2つのボタンがあり、.csファイルに1つのクラスがあります。ボタンのクリックの1つで、プログラム的に(動的に)テーブルを作成します。テーブルには、動的に作成されるいくつかのチェックボックスが含まれています。テーブルの作成は、私が実行する最後のタスクの1つです。その前に、いくつかのファイルを読み取り、それらからデータを抽出してテーブルを作成しました。テーブルが描画された後、ユーザーは1つ以上のチェックボックスを選択できます。

では、2回目のボタンクリックで、ページをリロードする前にどのチェックボックスがチェックされたかを知ることができますか?現在、これらすべてのチェックボックスを、.csファイルにある唯一のクラスのメンバー変数にしました。

C#コードを使用してチェックボックスイベントハンドラーを追加してみました。ただし、チェックボックスがオンになっている場合、ハンドラーは呼び出されません。チェックボックスの「autopostback」プロパティをtrueに設定したくないのは、trueに設定されている場合、チェックボックスの1つをチェックした後にページがリロードされるためです。ユーザーは複数のチェックボックスを選択できる必要があります。

4

1 に答える 1

0

チェックボックスを動的に追加し、各チェックボックスに一意の名前を設定します。チェックボックスは、チェックボックスがオンになっている場合にのみサーバーにポストバックされるため、Request.Formをチェックして名前が存在するかどうかを確認することで、チェックボックスがオンになっているかどうかをテストできます。たとえば、チェックボックスにchk_ [0-9](つまり、9までchk_0、chk_1など)という名前を付けた場合、次のようにしてチェックボックスがオンになっているかどうかを確認できます。

for(int i=0; i < 10; i++)
{
    string chk_name = "chk_" + i.ToString();
    if (Request.Form[chk_name] != null)
    {
        //checkbox is checked
    }
    else
    {
        //checkbox is not checked
    }
}
于 2012-06-19T21:44:49.733 に答える