2015-02-12 2 views
0

Я использовать Visual Studio 2008 для кодирования ASP.NET в C#GridView с Checkbox в ASP.NET

Я пытаюсь получить значение проверяемого или неконтролируемого форме флажок в GridView. Это мой код.

void imbTransferBySelect_Click(object sender, ImageClickEventArgs e) 
{ 
    for (int i = 0; i < GridView1.Rows.Count; i++) 
    { 
     CheckBox cb = (CheckBox)GridView1.Rows[i].FindControl("Transfer_Selector"); 
     if (cb.Checked) 
     { 
      //do something 
     } 
    } 
} 

Если флажок снят, код работает нормально.

Но когда флажок значения из GridView1.Rows.Count = 0 это сделать цикл отказобезо-

Я пытаюсь использовать другой код в http://www.aspsnippets.com/Articles/GridView-with-CheckBox-Get-Selected-Rows-in-ASPNet.aspx

foreach (GridViewRow row in GridView1.Rows) 
{ 
    if (row.RowType == DataControlRowType.DataRow) 
    { 
     CheckBox chkRow = (row.Cells[0].FindControl("Transfer_Selector") as CheckBox); 
     if (chkRow.Checked) 
     { 
      //do something 
     } 
    } 
} 

Это прекрасно работает, когда флажок не установлен.

И когда флажок установлен, он делает цикл в для каждого сбой снова.

У любого когда-либо была проблема, подобная мне, или знать, что произошло.

+0

Что означает «когда флажок установлен в значение GridView1.Rows.Count = 0, это сделать для цикла сбой»? Как можно проверить флажок, если нет строки с «CheckBox»? –

+0

Да, когда check-box проверил GridView1.Rows.Count = 0, я вижу его на этапе отладки, и когда запуск кода завершен, gridview отсутствует – benmore99

+0

Я пытаюсь изменить флажок по умолчанию, отмечен в файле .aspx и выполняется опять же, он снова сбой, но когда я снял флажок, он может работать в цикле, и он вводит условие проверки. Извините за мою проблему, это должно вас смутить. – benmore99

ответ

1

Buddy просто положил один if состояние на foreach петля в соответствии с вашим вопросом, я даю вам решение. проверьте ниже решение ..

if(GridView1.Rows.Count > 0) 
{ 
foreach (GridViewRow row in GridView1.Rows) 
{ 
    if (row.RowType == DataControlRowType.DataRow) 
    { 
     CheckBox chkRow = (row.Cells[0].FindControl("Transfer_Selector") as CheckBox); 
     if (chkRow.Checked) 
     { 
      //do something 
     } 
    } 
} 
} 
+0

'GridView1.Rows.Count = 0', и он не входит в условие – benmore99

+0

, вы просто добавляете это условие -> if (GridView1.Rows.Count> 0) – Shirish

+0

Я кодирую это, и когда я запускаю' GridView1.Rows.Count = 0', поэтому он не вводит условие if и for-each. – benmore99