2011-02-08 31 views
2

嗨, 我有一個關於asp.net問題訪問複選框HTML表格循環中,從後面的代碼(.NET)

我有這個表複選框的每一行:

http://i.stack.imgur.com/9QBLf.png

ASPX頁面內

表代碼:

http://i.stack.imgur.com/dLbP1.png

所以我想implem ent刪除選定的按鈕.. 當所有3個名稱相同時,我如何指向代碼隱藏中特定行的特定複選框chkSelected? 我知道如何用gridview來做到這一點,但不太清楚如果我們用for循環做到這一點..

我可以在btnDelete_Click中做這樣的事嗎?

foreach (Control control in Controls) 
    { 
     try 
     { 
      CheckBox chkCurrent = (CheckBox)control; 
      if (chkCurrent.Checked) 
      { 
       Partners partner = new Partners(chkCurrent.ID); <- reference id here 
       partner.Delete(); 
      } 
     } 
     catch { } 
    } 

預先感謝您!

+0

您可以添加HTML隱藏字段並將其值設置爲您正在查找的ID。但恕我直言,你應該放棄ASP經典的方法和代碼.Net風格(至少後面的代碼不混合可見和數據層)。 – Dies 2011-02-08 07:22:37

+0

你說得對。我想我認爲這種方式更簡潔,因爲它非常簡單。但事實證明,這使我的生活更加艱難,因爲我仍然需要手動編寫分頁碼......嗯..所以如果我要重寫這個頁面,最好的方法是什麼? Gridview,DataList,Repeater或? – fizyboy 2011-02-08 07:52:58

回答

0

WebForms ASP.Net有點老了,但我建議只是做蠻力並放棄ASP.Net的控制層。渲染每個複選框與正是如此獨特的名字:

<input type="checkbox" name="select_press<%= i %>" ... 

然後,在你的代碼隱藏,檢查請求收集每個複選框的存在。