Подтвердить что ты не робот

Добавление toastr javascript asp.net webform

Я пытаюсь отобразить сообщение toastr (информация, ошибка и т.д.) после отправки формы с помощью кнопки и обновления элемента управления gridview (который находится в панели обновления) в веб-форме asp.net. Спасибо

4b9b3361

Ответ 1

Вы можете сделать это с помощью метода Page.ClientScript.RegisterStartupScript. Пример:

Page.ClientScript.RegisterStartupScript(this.GetType(),
    "toastr_message", "toastr.error('There was an error', 'Error')", true);

Но я бы, вероятно, создал метод или метод расширения для обработки этого для меня:

public static void ShowToastr(this Page page, string message, string title, string type = "info")
{
    page.ClientScript.RegisterStartupScript(page.GetType(), "toastr_message",
          String.Format("toastr.{0}('{1}', '{2}');", type.ToLower(), message, title), addScriptTags: true);
}

Использование:

ShowToastr(this.Page, "Hello world!", "Hello");

Если вы хотите что-то более надежное, вы можете сделать параметр type a enum.

Ответ 2

Вызов из веб-формы (обратите внимание, что это форма MasterDetail, поэтому есть MasterPage.

MasterPage.ShowToastr(Страница, "Сообщение здесь", "Название здесь", "Информация", "Ложно", "Тост-снизу-полная ширина", "Неверно" )

Реализация VB.NET ShowToastr на главной странице (VB)

Public Shared Sub ShowToastr(ByVal page As Page, ByVal message As String, ByVal title As String, Optional ByVal type As String = "info", Optional ByVal clearToast As Boolean = False, Optional ByVal pos As String = "toast-top-left", Optional ByVal Sticky As Boolean = False)
    Dim toastrScript As String = [String].Format("Notify('{0}','{1}','{2}', '{3}', '{4}', '{5}');", message, title, type, clearToast, pos, Sticky)
    page.ClientScript.RegisterStartupScript(page.[GetType](), "toastr_message", toastrScript, addScriptTags:=True)
End Sub

Функция Javascript ShowToastr находится на главной странице как общая функция.

  <link href="./Media/css/Grey/ListBox.Grey.css" rel="stylesheet" type="text/css" />
<link href="./Media/css/WebTrack.css" rel="stylesheet" type="text/css" />

<script src="http://code.jquery.com/jquery-1.9.1.min.js" type="text/javascript"></script>

<link href="#" onclick="location.href='https://cdnjs.cloudflare.com/ajax/libs/toastr.js/2.0.1/css/toastr.css'; return false;"
    rel="stylesheet" />

<script src="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/2.0.1/js/toastr.js"
    type="text/javascript"></script>

<script language="javascript" type="text/javascript">
    function Notify(msg, title, type, clear, pos, sticky) {
        //        toastr.options.positionClass = "toast-bottom-right";
        //        toastr.options.positionClass = "toast-bottom-left";
        //        toastr.options.positionClass = "toast-top-right";
        //        toastr.options.positionClass = "toast-top-left";
        //        toastr.options.positionClass = "toast-bottom-full-width";
        //        toastr.options.positionClass = "toast-top-full-width";
        //        options = {
        //            tapToDismiss: true,
        //            toastClass: 'toast',
        //            containerId: 'toast-container',
        //            debug: false,
        //            fadeIn: 300,
        //            fadeOut: 1000,
        //            extendedTimeOut: 1000,
        //            iconClass: 'toast-info',
        //            positionClass: 'toast-top-right',
        //            timeOut: 5000, // Set timeOut to 0 to make it sticky
        //            titleClass: 'toast-title',
        //            messageClass: 'toast-message' }


        if (clear == true) {
            toastr.clear();
        }
        if (sticky == true) {
            toastr.tapToDismiss = true;
            toastr.timeOut = 10000;
        }

        toastr.options.onclick = function() {
            //alert('You can perform some custom action after a toast goes away');
        }
        //"toast-top-left";
        toastr.options.positionClass = pos;
        if (type.toLowerCase() == 'info') {
            toastr.options.timeOut = 1000;
            toastr.tapToDismiss = true;
            toastr.info(msg, title);
        }
        if (type.toLowerCase() == 'success') {
            toastr.options.timeOut = 1500;
            toastr.success(msg, title);
        }
        if (type.toLowerCase() == 'warning') {
            toastr.options.timeOut = 3000;
            toastr.warning(msg, title);
        }
        if (type.toLowerCase() == 'error') {
            toastr.options.timeOut = 10000;
            toastr.error(msg, title);
        }
    }
</script>

Я надеюсь, что это поможет кому-то, поскольку я пытался на протяжении веков получить параметры toastr, интегрированные в один звонок. Если вы хотите иметь больше опций для вызова toastr, добавьте дополнительные параметры в функции. Все параметры, которые могут быть установлены, находятся в комментариях (javascript).