Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Уделение строки из таблицы.
|
|||
|---|---|---|---|
|
#18+
Вопрос наверняка давно избитый но... Есть некий класс который визуализирует передаваемый ему DataTable ч/з DataGrid. Класс по требованию внешнего класса создает всякого рода кнопки (типа добавить, удалить изменить и еще не знаю какие). Под них создаются делегаты, вернее одна делигированная функция возвращающая ID кнопки, а внешний класс уже сам думает что делать на каждое событие. Я могу отдать внешнему классу либо текущий ID строки (ID из базы данных, уникален), DataRowView (как его привести к DataRow не знаю, в лоб не проходит) или BindingManagerBase. Может еще что... Вопрос, что лучше иметь снаружи, что б корректно отработать ситуацию. Т.е. можно было бы удалить или добавить строку из таблицы и что б оно отразилось в DataGrid. Дайте толчек, в какую сторону топать, бо я сейчас на распутье. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 19:34 |
|
||
|
Уделение строки из таблицы.
|
|||
|---|---|---|---|
|
#18+
Варианты передачи ID или DataRowView почти одинаковы Однако все зависит от того знает ли внешний класс о ДатаТэйбле если да - передавай ID и ищи по ключу запись Table.Rows.Find(ID) а потом делай с записью что хочешь У DataRowView есть свойство Row, которое и даст тебе искомую запись. про BindingManagerBase не знаю.. возможно его можно сделать свойством внутреннего класса и тогда вообще нет смысла передавать что либо через аргументы события, а пользоваться простым EventArgs и в обработчике обращаться к BindingManagerBase. ЗЫ. в System.Data есть делегат DataRowChangeEventHandler и аргумент к нему DataRowChangeEventArgs - может пользоваться ими и DataRowView для генерации событий и ничего другого не придумывать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2004, 10:46 |
|
||
|
Уделение строки из таблицы.
|
|||
|---|---|---|---|
|
#18+
Огромное спасибо. Решил бороться ч/з DataRowView. Еще вопрос в догонку. dataTable.Rows[N].Delete(); Строка вроде как только помечается как удаленная. Т.е. несколько вызовов dataTable.Rows[5].Delete(); приведут к удалению только одной строки. Ну соответственно если пытаться пробегать в цикле по строкам и пытаться читать содержимое - возникает ошибка. Все правильно, она и должна появляться. Но как схлопнуть таблицу и стоит ли вообще этим заниматься, с точки зрения экономии процессорного времени? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2004, 12:05 |
|
||
|
Уделение строки из таблицы.
|
|||
|---|---|---|---|
|
#18+
Чтобы прибить удаленную строку нужно либо сказать после удаления Table.AcceptChanges() - при этом будут приняты ВСЕ изменения на таблице, либо удалять ее по-другому: Table.Rows.Remove(row) - тогда и следов ее не остнется. Все это касается случаев когда нет необходимости обновлять базу на сервере, если база будет обновлятся через DataAdapterы то все изменения будут приняты после Update'ов автоматически ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2004, 16:54 |
|
||
|
|

start [/forum/topic.php?fid=20&fpage=1006&tid=1438375]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
| others: | 258ms |
| total: | 394ms |

| 0 / 0 |
