2017-03-01 11 views
0

asp.netのスクリプトがあり、チェックボックスの値が取得され、ユーザーが同じチェックボックスをクリックして解凍すると、チェックしている場合は、選択した行を削除します。私は、チェックボックスをチェックし、同じチェックボックスのチェックを外すと、私はそれを削除したくないのですが、削除します、私は私のコードでどうしなければならないのですか?C#checkboxチェックをチェックする(多分ユーザーがチェックして同じチェックボックスをオフにした)

protected void btnDelete_Click(object sender, EventArgs e) 
{ 
    string[] Checked = hfLegalRecords.Value.Split('|'); 

    for (int i = 0; i < Checked.Length - 1; ++i) 
    { 
     string[] value = Checked[i].Split(','); 
     string checkbox = value[0]; 
     string ClientCode = value[1]; 
     string DebtorNumber = value[2]; 
     if (checkbox.Equals("true")) 
      for (int j = 0; j < checkbox[i]; ++j) 
      { 
       LegalEvents.RemoveSelectCheckBox(ClientCode, DebtorNumber); 
      } 
    } 

    LoadLegalRecords(); 
} 

答えて

0

私はあなたがグリッド/テーブルを使って作業していると仮定しています。 あなたのCHECKを追跡するのにJavaScriptを使用していますか?または各CHECKはポストバックですか?

チェックボックスをオンにして、ユーザーがチェックする場合は、OnClick JavaScript関数を使用します。 hfLegalRecords.Value.Split( '|');を読んでhfLegalRecords文字列を "ClientCode、DebtorNumber、check"で更新します。ユーザーがDELETEボタンをクリックすると、 "ClientCode、DebtorNumber、uncheck"と同じアドバイスを追加します。

チェックされている場合と同様に、表2に移動します)

重複するClientCodeを持たないと仮定すると、ClientCodeごとに両方のテーブルのレコード数をチェックする小さなコードが記述されます。 CientCode1がチェックされている場合。あなたは1エントリの錫を持っています。表1. ClientCode2がチェックされ、チェックが外されている場合、両方のテーブルに1つのエントリがあります。 ClientCode3がChecked、Unchecked、Checkedの場合、Table1に2つのエントリ、Table2に1つのエントリがあります。

どちらの方法でも、「Table1のエントリがTable2のエントリでそのClientCodeを削除していれば」というロジックが必要です。それ以外の場合は削除しないでください。

これは、この簡単なコーディング構造で画面上でレコード数を増やすと複雑になります。私は個人的には、Asp.Netグリッドコントロールを使用することをお勧めします。あなたがすべてのレコードを取得し、ユーザーがDELETEボタンをクリックするとチェック/チェックされていないことを確認することができます。これにより、多くの時間とコード作成の労力が節約されます。

0

は文字列です。ここで

for (int j = 0; j < checkbox[i]; ++j) 
{ 
    LegalEvents.RemoveSelectCheckBox(ClientCode, DebtorNumber); 
} 

あなただけの文字列の各文字について LegalEvents.RemoveSelectCheckBox(ClientCode, DebtorNumber)を呼んでいます。

j < "true"がナンセンスであるため、実際にはこのコードはコンパイルされません。

+0

私はユーザーがチェックボックスをオンにしてチェックボックスのチェックを外しても、それを削除しないようにしていますが、ユーザーが最初にチェックボックスをオンにすると、行を削除し、それを削除します。 –

+1

あなたのコードには 'CheckBox'オブジェクトはありません。 – BanksySan

関連する問題