Получение данных из GridView на Button_Click - PullRequest
0 голосов
/ 05 февраля 2012

Моя проблема:

У меня есть GridView, который привязан к списку объявленных объектов DTO со столбцом CheckBoxes. Также у меня есть кнопка «Сохранить» на странице. Моя миссия заключается в получении всех строк, где проверяется CheckBox и получение содержащих данных. К сожалению, row.DataItem = null для Button1_Click, потому что я использую оператор if (! IsPostBack) gw.DataBind () (в противном случае я не могу получить статус CheckBox). Не могли бы вы дать мне лучшую практику для решения моей проблемы?

Заранее спасибо!

1 Ответ

1 голос
/ 05 февраля 2012

Если вы сделаете if(!IsPostBack) --> gw.DataBind(), это приведет к повторной инициализации GridView, и флажки будут снова сняты.

В вашем случае в событии Button1_Click вы можете циклически проходить через каждый DataRow на вашем GridView, найти строку, для которой установлен флажок, и получить все выбранные данные строки.

foreach (GridViewRow gvRow in gw.Rows) {
// Find your checkbox
    CheckBox chkBox = (CheckBox)gvRow.FindControl("checkBox");

    if (chkBox.Checked) {
    // Get your values 
        string value1 = gvRow.Cells[1].Text;
        string value2 = gvRow.Cells[2].Text;
        // etc...
    }
}
...