Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ColumnChanging Canceled / 4 сообщений из 4, страница 1 из 1
13.07.2005, 12:38
    #33163149
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ColumnChanging Canceled
Можно ли как-то в OnColumnChanging запретить изменение? 4 example:
Код: plaintext
1.
2.
3.
4.
5.
static void dt_ColumnChanging(object sender, DataColumnChangeEventArgs e)
{
	if(e.Row[e.Column.ColumnName].ToString()==e.ProposedValue.ToString())
		CancelModify=true; // или что-то вроде этого
}
или это можно решить как-то по-другому? Просто необходимо запретить "изменение" значений, которые на самом деле не изменяются (что бы в последствии можно было бы корректно RowState заюзать). Сравнивать перед присваиванием - муторно...

/me И че они в set'ере проверку не сделали?..
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
18.07.2005, 09:49
    #33170559
dma_caviar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ColumnChanging Canceled
Я сделал так:



Private laststat As System.Data.DataRowState

Private Sub FDataTable_ColumnChanged(ByVal sender As Object, ByVal e As System.Data.DataColumnChangeEventArgs) Handles FDataTable.ColumnChanged
If e.Row.HasVersion(DataRowVersion.Original) Then If e.ProposedValue.ToString = e.Row(e.Column, DataRowVersion.Original).ToString And laststat = DataRowState.Unchanged Then e.Row.RejectChanges()
End Sub

Private Sub FDataTable_ColumnChanging(ByVal sender As Object, ByVal e As System.Data.DataColumnChangeEventArgs) Handles FDataTable.ColumnChanging
laststat = e.Row.RowState
If e.Row.HasVersion(DataRowVersion.Original) Then If e.ProposedValue.ToString = e.Row(e.Column, DataRowVersion.Original).ToString And laststat = DataRowState.Unchanged Then e.Row.RejectChanges()
End Sub
...
Рейтинг: 0 / 0
18.07.2005, 09:51
    #33170564
dma_caviar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ColumnChanging Canceled
Кстати, e.ProposedValue и e.Row(e.Column, DataRowVersion.Original) перед преобразованием в String неплохо бы на Nothing проверить
...
Рейтинг: 0 / 0
17.08.2005, 09:11
    #33219537
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ColumnChanging Canceled
Попробуем зайти с другой стороны: можно ли как-то переопределить set'ер DataRow.Item (public object this[string] {get; set;})?
На предмет как нормальные люди делают:
Код: plaintext
1.
2.
if(Value!=NewValue)
  Value=NewValue;
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ColumnChanging Canceled / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]