Как показать окно сообщения из правки / добавления нового нажатия на кнопку devexpress gridview - PullRequest
0 голосов
/ 16 марта 2012

У меня есть devexpress вложенного gridview. Как в основном, так и в подробном виде сетки есть кнопки ссылок для редактирования и добавления новых действий. После добавления новой строки или обновления существующей строки я должен показать окно с сообщением «Ваше обновление успешно сохранено». Это может быть простое окно предупреждения JavaScript или сообщение, отображаемое на самой странице. Оба вида сетки используют объектный источник данных. Я попробовал следующие коды в событии RowUpdated как gridview, так и objectdatasource:

System.Web.HttpContext.Current.Response.Write ("alert (Ваше обновление успешно сохранено ')");

или

ClientScript.RegisterStartupScript (this.GetType (), "myalert", "alert ('" + Ваше обновление успешно сохранено + "');", true);

Но в любом случае окно сообщения не отображается. Если я использовал тот же код в событии нажатия кнопки для кнопки на странице, то он работает нормально. Я событие попытался установить текстовое значение элемента управления asp: Literal. Это также не сработало. Любая помощь с благодарностью.

спасибо

1 Ответ

4 голосов
/ 17 марта 2012

Обработка ASPxGridView.RowInserted и ASPxGridView.RowUpdated события сетки для установки настраиваемого свойства, содержащего сообщение, в ASPxGridView.JSProperties .
Затем обработайте клиентское событие ASPxClientGridView.EndCallback , чтобы проверить, существует ли пользовательское свойство, и подать предупреждение.

protected void ASPxGridView1_RowUpdated(object sender, ASPxDataUpdatedEventArgs e) {
    if (e.Exception == null) {
        ((ASPxGridView)sender).JSProperties["cpUpdatedMessage"] = "Your update has been saved successfully";
    }
}
<dx:aspxgridview ID="ASPxGridView1" ... onrowupdated="ASPxGridView1_RowUpdated">
    <clientsideevents
        EndCallback="function(s, e) {
                        if (s.cpUpdatedMessage) {
                            alert(s.cpUpdatedMessage);
                            delete s.cpUpdatedMessage;
                        }
                    }"
    />

Сделайте то же самое для события RowInserted. Аналогичный пример есть в центре поддержки DevEx.

В качестве альтернативы, вы можете использовать решение с параметром e.command .

...