Почему я получаю старые данные в моем сеточном представлении при загрузке страницы? - PullRequest
3 голосов
/ 19 марта 2011

Процесс, который я делаю, если lbl.Text «Проверено», то отключите соответствующий флажок в сетке.Код работает нормально, если нет подкачки.Теперь проблема в том, что я использую пейджинг, и когда я нажимаю на следующую страницу сетки, проверенные вещи появляются с включенным флажком.

Я проверил через контрольные точки.Это загрузка предыдущих значений сетки страницы во время события загрузки страницы.А после pageloadevent он собирается и загружает новые значения в сетку.

//-------loading previous page values of grid here---------

protected void Page_Load(object sender, EventArgs e)
{
    foreach (GridViewRow row in GridView1.Rows)
    {
        Label lbl = (Label)row.FindControl("Labely8");
        Label Label23 = (Label)row.FindControl("Label23");
        CheckBox checkbox = (CheckBox)row.FindControl("chkRows");
        if (lbl.Text == "Validated")
        {
            checkbox.Enabled = false;
        }
        else
        {
            checkbox.Enabled = true;
        }
    }
}

1 Ответ

2 голосов
/ 19 марта 2011

Я думаю, вам нужно включить или отключить каждый из флажков отдельно в событии GridView.RowDataBound, а не все сразу в событии Page_Load:

void GridView1_RowDataBound(Object sender, GridViewRowEventArgs e)
{    
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
        CheckBox checkbox = (CheckBox)e.Row.FindControl("chkRows");
        checkbox.Enabled = e.Row.Cells["nameOfCellWithLabel"].Text == "Validated";
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...