|
Как установить фокус в XtraGrid на группе строк?
|
|||
---|---|---|---|
#18+
Доброго времени суток! Вообщем ситуация следующая. Есть источник данных (dt = new DataTable() ) Есть GridView. Ему на вход дан dt. Он сгруппирован по каким то колонкам. фокус стоит не на строке .. а на одной из групп.... После добовления новой записи dt.. снова пердаем : gridcontrol1.DataSourde = dt; (так надо по условию поставленной задачи) После этого фокус становиться в 1-ю позицию(( Я могу установить фокус на конкретную строку уже в "несгруппированых строках".. а на группированные поставить не могу((( Что я делал: //ДО ДОБАВЛЕНИЯ НОВОЙ ЗАПИСИ В Таблицу запоминаем предідущие указатели!! int rowHandle = gridView1.FocusedRowHandle; // получил указатель строки if (gridView1.IsGroupRow(rowHandle)) // проверил если GROUP { currentRow = gridView1.GetDataRowHandleByGroupRowHandle(rowHandle); // получил указатель группы } gridControl1.DataSource = dt; //заполнили грид А после этого: gridView1.FocusedRowHandle = currentRow; Но вот тут неверно( Указатель становиться не на группу а на первую строку в той группе которая изначально была выделена..(( Что я делаю не так? подскажите? как установить указатель на саму строку группы... Заранее спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2013, 11:23 |
|
Как установить фокус в XtraGrid на группе строк?
|
|||
---|---|---|---|
#18+
Я вот не помню, попробуй передать в функцию выделения строки отрицательное значение (начиная с -1 и так далее) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2013, 13:44 |
|
Как установить фокус в XtraGrid на группе строк?
|
|||
---|---|---|---|
#18+
та все. разобрался... все равно надо в фокус передавать значение.. строки... обычные строки - это нумерация с 1... n а группированные строки это нумерация с -1... -n вообщем код такой: int rowHandle = gridView1.FocusedRowHandle; DataRow row = gridView1.GetDataRow(rowHandle); // потом расскажу зачем)) gridControl1.DataSource = dt; if (gridView1.IsGroupRow(rowHandle)) //если группированые строки { gridView1.FocusedRowHandle = rowHandle } else // если не обычная строка то делаем такой код //просто сделать gridView1.FocusedRowHandle = rowHandle; нельзя... т.к. // он не учитывает сортировку в dt //и в rowHandle - попадет не то значение... //поєтому делаем так (field6 - уникальное поле в dt) { int x = 0; foreach (DataRow dr in dt.Select("","field6")) { if (dr["field6"].ToString() == row["field6"].ToString()) { break; } x++; } gridView1.FocusedRowHandle = x; } ps. возникает еще неудобство(... после перерисовки грида - курсо то становится на нужное место... но.... все ранее развернутые строки (в группах) - были снова СВЕРНУТЫ...( как запомнить состояние развернытых групп строк? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2013, 16:44 |
|
|
start [/forum/topic.php?fid=20&fpage=159&tid=1404515]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 157ms |
0 / 0 |