Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Незафиксированные изменения и EndEdit


Автор: Akella 29.6.2011, 23:22
Продолжаю мучать пример работы с данными в Silverlight: http://msdn.microsoft.com/ru-ru/library/ff713719%28v=vs.91%29.aspx

Проблема с добавлением новой записи.
На этапе компиляции проблем нет.

Запускаю приложение, нажимаю кнопку Добавить, заполняю поля, и нажимаю ОК.
Появляется сообщение об ошибке
Цитата
Сущность (Entity)"tabonents : 0" в настоящее время изменяется и содержит незафиксированные изменения. После вызова метода BeginEdit для подтверждения изменения необходимо вызвать метод EndEdit или CancelEdit


Код нажатия кнопки.
Код

private void OKButton_Click(object sender, RoutedEventArgs e)
        {
            // ставлю бряку - не срабатывает
            addEmployeeDataForm.CommitEdit();
            this.DialogResult = true;
        }


Кнопка ОК на форме:
Код
<Button x:Name="OKButton" Content="ОК" Click="OKButton_Click" Width="75" Height="23" HorizontalAlignment="Right" Margin="0,12,79,0" Grid.Row="1" FontFamily="Verdana" FontSize="12" FontWeight="Bold" />


Что я делаю не так? Какая инфа ещё понадобится от меня?

P.S. На странице с примером ни единого слова про EndEdit.


Пасиб smile

Автор: MaxWave 30.6.2011, 08:45
Бряки срабатывают только в IE

Попробуй перед вызовом addEmployeeDataForm.CommitEdit() вызывать EndEdit()

Автор: Rohoss 30.6.2011, 09:04
Akella, это наверное тебе в раздел по базам данных нужно было постить, так как SL тут не при чём...

Автор: Akella 30.6.2011, 11:02
у addEmployeeDataForm нет метода EndEdit

Автор: Akella 1.7.2011, 23:11
Цитата(MaxWave @ 30.6.2011,  08:45)
Бряки срабатывают только в IE

Не могу найти, как натравить студию на IE, но чтобы FF оставался браузером по умолчанию.

Кстати видел в интернете писали, что на FF можно поставить расширения для дебага в FF

Автор: Akella 2.7.2011, 22:07
Подскажите, может на просторах форумов MS есть форум, где могут помочь?

Автор: Rohoss 2.7.2011, 22:21
Цитата(Akella @  2.7.2011,  22:07 Найти цитируемый пост)
Подскажите, может на просторах форумов MS есть форум, где могут помочь? 

Я когда-то создавал тему http://social.msdn.microsoft.com/Forums/, ответ пришлось долго ждать... 

Автор: Akella 2.7.2011, 22:57
Поменял код на кнопке ОК

Код

      private void OKButton_Click(object sender, RoutedEventArgs e)
        {
            
 
            if (addAbonentDataForm.CommitEdit())
            {
                MessageBox.Show("123");// почему-то нет сообщения
            };
 
            this.DialogResult = true;
        }


Но почему-то нет сообщения. Получается, что CommitEdit() возвращет false

Добавлено через 6 минут и 36 секунд
Цитата(Akella @  2.7.2011,  22:57 Найти цитируемый пост)
Но почему-то нет сообщения. 

Наверняка из-за AutoCommit="True"


Код
<dataForm:DataForm x:Name="addAbonentDataForm"   AutoGenerateFields="False" AutoCommit="True" AutoEdit="True" CommandButtonsVisibility="None">


Добавлено через 13 минут и 10 секунд
Нет, не из-за этого.
Мало того, если автор примера в свойствах dataForm ставит AutoCommit="True", то зачем выполнять код addAbonentDataForm.CommitEdit() при нажатии на кнопку? smile

Добавлено через 14 минут и 50 секунд
Установил AutoCommit="False" всё равно addAbonentDataForm.CommitEdit() возвращает False smile 

Автор: Rohoss 3.7.2011, 09:28
Akella, ну ты бы проект прикрепил. А то всё то что там на странице перенабирать влом...

Автор: Akella 3.7.2011, 11:45
http://rghost.ru/13288911
я удалил dll, надеюсь, они не нужны, так архив в 2 раза меньше

Добавлено через 2 минуты и 9 секунд
Я теперь пытаюсь прикрутить встроенную регистрацию/авторизацию к своей базе  smile

Добавлено через 2 минуты и 50 секунд
Кстати, при регистрации ведь работает добавление нового пользователя в базу.... покажите, где мне это посмотреть?

Автор: Rohoss 3.7.2011, 12:37
Цитата(Akella @  3.7.2011,  11:45 Найти цитируемый пост)
Кстати, при регистрации ведь работает добавление нового пользователя в базу.... покажите, где мне это посмотреть?

Вот сюда http://www.google.com.ua/search?sourceid=chrome&ie=UTF-8&q=aspnet_register#sclient=psy&hl=ru&source=hp&q=asp.net+Membership+Roles+Forms+Authentication&aq=&aqi=&aql=&oq=asp.net+Membership+Roles+Forms+Authentication&pbx=1&fp=3099ba5d06bcd042&biw=1680&bih=949

Автор: Akella 3.7.2011, 12:47
http://silverlighter.ru/forums/p/8772/46130.aspx#46130
здесь ещё нашел

Автор: Akella 3.7.2011, 13:43
Я смотрел несколько примеров. И на techdays, и здесь: http://www.silverlightshow.net/items/Creating-Rich-Data-Forms-in-Silverlight-3-Introduction.aspx
и везде показано, что грид заполняется через какой-то специальный класс, который описывает таблицу. Я так понял, что без DomainDataSource.
А в этом примере, который я мучаю - с DomainDataSource.

Автор: Akella 6.7.2011, 22:46
Неужели я нашёл рабочий  пример smile
http://code.msdn.microsoft.com/Getting-Started-WCF-RIA-1469cbe2

Добавлено @ 22:57
Та же самая проблема при добавлении новой записи:

http://fastpic.ru/view/24/2011/0706/6c1360adbd37e7cf6ca7097472f32ee6.png.html


И здесь описание ошибки этого примера: http://forums.silverlight.net/forums/p/194517/451679.aspx

Код нажатия на кнопку ОК:
Код

private void OKButton_Click(object sender, RoutedEventArgs e)
{
        bool committed = DataForm.CommitEdit();

        if (committed || (!DataForm.IsItemChanged && DataForm.IsItemValid))
        {
                this.DialogResult = true;
        }
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)