Я сделал это в некоторых моих c#. Я не знал, что Вы могли назвать блоки, хотя, я должен буду попробовать, которые видят, работает ли это в c# также.
я думаю, что блок объема может быть хорошей идеей, потому что можно инкапсулировать код, характерный для чего-то в блоке кода, где Вы не могли бы хотеть разделять его на его собственную функцию.
Что касается недостатка вложения их, я рассматриваю что как большее количество отказа программиста не самих блоков объема.
There's a few ways to approach it. If you are not re-binding the data on PostBack (e.g. you are relying on the already-populated repeater), you need to write the record ID to some field that will be persisted in ViewState. In this example I've used a HiddenField:
void Button_Click(object sender, EventArgs e)
{
foreach(RepeaterItem item in myRepeater.Items)
{
CheckBox cbxIsActive = item.FindControl("cbxID") as CheckBox;
HiddenField hdfID = item.FindControl("recordID") as HiddenField;
if(cbxIsActive != null && hdfID != null)
{
string recordID = hdfID.Value;
bool isActive = cbxIsActive.Checked;
UpdateRecord(recordID, isActive);
}
}
}