Выбранная строка не изменяется после сортировки GridView - PullRequest
1 голос
/ 09 сентября 2009

У меня странная проблема с GridView. Я установил столбец Выбрать и разрешил сортировку. Если я выбираю строку, то сортирую сетку, выбор остается на месте и сортировка сетки. То есть выделенная строка изменяется, но индекс выбора, похоже, не меняется.

Глядя на сетку в часах, кажется, что выбранное свойство индекса фактически остается прежним, но выбранный ключ данных изменяется.

Я очень запутался и не смог отследить, почему это происходит, какие-либо мысли?

Ответы [ 2 ]

2 голосов
/ 09 сентября 2009

Я нашел запрос на изменение для этой конкретной проблемы , в котором говорится следующее:

Именно из-за того, что мы не держим отслеживание выбора по сортам, обновления, удаления и т. д. Эта часть будет не подлежит изменению.

Похоже, вам понадобится другой способ отслеживать выбранную строку по сортам.

1 голос
/ 10 сентября 2009

На самом деле, я нашел способ обойти это, может быть, не так сладко, но в любом случае, я получил то, что хотел :) В событии загрузки GridView_PreRender

защищенный void GridView1_PreRender (отправитель объекта, EventArgs e) { // растягивать текст, если он длинный ..

        if (GridView1.Controls.Count != 0)
        {
            foreach (GridViewRow r in GridView1.Controls[0].Controls)
            {
                foreach (TableCell tc in r.Controls)
                {
                    if (tc.Text != "" && tc.Text.Length > 39)
                    {
                        tc.Text = tc.Text.Substring(0, 39) + " ...";
                    }
                }
            }
        }

        // here is the where the magic happens :)
        if (GridView1.SelectedRow != null)
        {
            GridViewRow row = GridView1.SelectedRow;
            if (row.Cells.Count > 1)
            {
                //Here I pick the p.keyID
                SetOrderData(Convert.ToInt32(row.Cells[1].Text));

                this.LabelDebug.Text = row.Cells[1].Text;
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...