2017-03-01 110 views
0

我有asp.net的腳本,它創造了checkBox的值,並且可能用戶點擊和取消點擊相同的複選框,然後我會編程檢查2次如果是檢查,則將其刪除一個選定的行。我遇到的問題是,當我檢查複選框並取消選中相同的複選框時,我不想刪除它,但它會刪除,請問我需要使用我的代碼?C#檢查是否複選框檢查(可能用戶檢查和取消選中相同的複選框)

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

我假設你正在使用網格/表格。 您是否正在使用javascript來追蹤您的CHECK?或每個CHECK是回傳?

使用Onclick JavaScript函數將您的複選框和用戶檢查它。使用「ClientCode,DebtorNumber,檢查」更新hfLegalRecords字符串,如果他在用戶單擊DELETE按鈕時取消勾選相同的添加「ClientCode,DebtorNumber,取消選中」

閱讀hfLegalRecords.Value.Split('|');並將它們存儲在單獨的DataTables/Arrays中(如果選中將移至表1;如果未選中,移至Table2)

假設您沒有重複的ClientCode,編寫一個小代碼來檢查每個ClientCode中兩個表中的記錄數。如果你有CientCode1檢查。你有1個條目表1.如果你有ClientCode2選中和取消選中,你在這兩個表中都有1個條目。如果ClientCode3是Checked,Unchecked和Checked,你將在Table1中有2個條目,在Table2中有1個條目。無論哪種方式,你的邏輯應該是「如果Table1中的條目> Table2中的條目刪除該ClientCode」否則不要刪除。

使用這種簡單的編碼結構,當屏幕上顯示更多數字記錄時,這將變得複雜。我個人建議使用Asp.Net網格控件。因此,您可以獲取所有記錄,並在用戶單擊DELETE按鈕時驗證選中/取消選中。這將節省大量的時間和你在編碼方面的努力。

0

不知道你在做什麼,但checkbox[i]是一個字符串。

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

在這裏,我們只是呼籲 LegalEvents.RemoveSelectCheckBox(ClientCode, DebtorNumber)的字符串中的每個字符。

其實這個代碼甚至不會編譯,因爲j < "true"是無稽之談。

+0

我試圖如果用戶選中複選框,然後選中複選框的同一指標,不要刪除它,但如果用戶選中該複選框,第一次是刪除行,如果取消選中同一checbox這不把它刪除,但它是刪除它。 –

+1

代碼中沒有'CheckBox'對象。 – BanksySan