ASPxGridview - прерывающие события вставки строки - PullRequest
0 голосов
/ 14 октября 2011

Надеясь, что кто-нибудь может указать мне правильное направление

Использование DevExpress ASPxGridView и формы редактирования.

Мне нужно «прервать» события RowInserting, чтобы предупредить пользователя, если запись уже есть.сопоставляя их информацию и позволяя им продолжить или отменить.

Я добавил проверку (и отмену) к событию OnRowInserting и использую customJSProperties, чтобы вызвать всплывающее окно при обратном вызове.

Но я застрял на том, как заставить всплывающие кнопки «да» возобновить (или перезапустить) вставку строки.

Есть ли способ снова вызвать событие обновления editform из кода на стороне клиента?

Или мне нужен совершенно другой подход?

Ответы [ 2 ]

0 голосов
/ 21 октября 2011

Вы можете решить эту проблему с помощью пользовательского HttpHandler.Примерно так:

  1. нажмите кнопку Сохранить в форме редактирования
  2. Сохранить инициирует вызов httphandler (из javascript) с данными, необходимыми для проверки (имя таблицы, идентификатор).С помощью jquery вы можете вызывать http-обработчик следующим образом:
  3. , если обработчик возвращает true, продолжайте сохранение, в противном случае выведите предупреждение с помощью OK / Cancel
  4. , если пользователь выберет OK, продолжите с Save

Вызов Javascript с обработчиком http будет выглядеть так:

$.ajax({
    async: false,
    cache: false,
    url: 'YourHttpHandler.ashx',
    data: { tableName: "your table name", record_id: your_id },
    success:
        function (data, textStatus, xmlHttpRequest)
        {
            if(data.result==true) 
                if(confirm('Continue?')) 
                {
                    // continue with save 
                }
        }
});
0 голосов
/ 17 октября 2011

Прежде всего, я нашел эту статью Используйте "да" / "нет" в режиме редактирования для логического значения

Во-вторых, я надеюсь, что у всех ваших строк есть уникальное значение, такое как ID. Если это так, я предлагаю такой способ;

  • Используйте OnRowInserting функцию ASPxGridview. (Найти здесь примеры кода и т. Д.)
  • Убедитесь, что ваш идентификатор вставки уже находится в вашем хранилище данных или нет. (С запуском запроса)
  • Если в вашем хранилище данных или нет, используйте XtraMessageBox like;
XtraMessageBox.Show(“Content”, “Title”, MessageBoxButtons.YesNo);

перед этим добавьте DevExpress.XtraEditors пространство имен. Тогда вы можете использовать его как;

DialogResult myDialogResult;
myDialogResult = XtraMessageBox.Show("Content", "Title", MessageBoxButtons.YesNo);

if (myDialogResult == DialogResult.Yes)
{
    //yes was clicked
}

if (myDialogResult == DialogResult.No)
{
    //no was clicked
}

Надеюсь, это даст вам идею. И если у вас есть лицензия Devexpress, вы можете обратиться в службу поддержки Devexpress . Они действительно быстрые и полезные.

...