Обработка исключений UpdatePanel

Ctrl + Сдвиг + S

Сохранили все измененные файлы. сохраненный меня довольно много раз.

16
задан Chris 9 June 2011 в 13:14
поделиться

3 ответа

Вы можете использовать комбинацию события AsyncPostBackError в ScriptManager (на стороне сервера) и события EndRequest на PageRequestManager (на стороне клиента) для полной обработки ошибок на стороне сервера при использовании UpdatePanel.

Вот несколько ресурсов, которые могут вам помочь:

Настройка обработки ошибок для элементов управления ASP.NET UpdatePanel

Настройка обработки ошибок для ASP.NET UpdatePanel

] Вот простой пример:

// Server-side
protected void ScriptManager1_AsyncPostBackError(object sender, 
    AsyncPostBackErrorEventArgs e)  {
    ScriptManager1.AsyncPostBackErrorMessage =
        "An error occurred during the request: " +
        e.Exception.Message; 
}


// Client-side
<script type="text/javascript">
  function pageLoad()  {
    Sys.WebForms.PageRequestManager.getInstance().
        add_endRequest(onEndRequest);  
  }

  function onEndRequest(sender, args)  {
    var lbl = document.getElementById("Label1");
    lbl.innerHTML = args.get_error().message;
    args.set_errorHandled(true);
  }
</script>
20
ответ дан 30 November 2019 в 17:52
поделиться

Не могли бы вы переопределить метод ошибки на уровне страницы, перехватить исключение и обработать так, как вы считаете нужным.

protected override void OnError(EventArgs e)
{
    //show error message here
}
0
ответ дан 30 November 2019 в 17:52
поделиться

Я потратил весь день на это, и я стал намного ближе, но все еще не так хорошо, как хотелось бы. Теперь у меня есть нужная функциональность, но возникает ошибка Javascript.

Проблема заключается в том, что сортировочный список возвращается в прежнее положение, если элемент опускается в раскрываемый список, а не в список. В настоящее время я сохраняю html onmousedown, а затем переписываю html в функции drop droppable. Это работает, но его предоставление переменной jquery является нулевой ошибкой. Может ли кто-нибудь найти лучшее решение?

Код:

<html>
<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js"></script>
    <script type="text/javascript">

var templateHtml;
$(document).ready(function(){

    $("#sortable").sortable();
    $("#sortable li").addClass("drop").bind('mousedown',function(){
        templateHtml = $("#sortable").html();
    });
    $("#droppable").droppable({
        activeClass: 'active',
        hoverClass:'hovered',
        accept:".drop",
        drop:function(event,ui){
            $("#sortable").sortable('destroy').html(templateHtml);
            $("#sortable").sortable();
            $("#sortable li").addClass("drop").bind('mousedown',function(){
                templateHtml = $("#sortable").html();
            });          
        }
    });

});

    </script>
    <style type="text/css">
    #sortable li{
        clear:both;
        float:left;
    }

    #droppable {
        clear:both;
        height:300px;
        width:400px;
        background-color:#CCC;
    }
    #droppable.active {
        background-color:#CFC;
    }
    #droppable.hovered {
        background-color:#CCF;
    }
    </style>

</head>
<body>

<ul id="sortable">
<li id="one">One</li>
<li id="two">Two</li>
<li id="three">Three</li>
<li id="four">Four</li>
<li id="five">Five</li>
<li id="six">Six</li>
</ul>

<div id="droppable">
Drop Here
</div>

</body>
-121--1426825-

Многие из этих ответов проигнорировали тэг C++. В C++ "объект является областью места хранения. [Примечание: функция не является объектом, независимо от того, занимает ли она место хранения таким же образом, как объекты.] " (Стандарт C++, 1,8/1).

Если вопрос домашнего задания о C++, то никакое другое определение объекта не применимо, даже «ничего видимого или осязаемого и относительно стабильного по форме» (dictionary.reference.com). Это не вопрос вашего мнения о принципах ООП, это фактически вопрос, являются ли ix и ia переменными.

Поскольку это домашнее задание, я не скажу вам ответ, но обратите внимание, что struct {int x;} ix; - это не то же самое, что struct ix {int x;}; .

С другой стороны, если домашнее задание посвящено принципам ООП, то вышибите себя любым определением, которое дал вам преподаватель. Поскольку я не знаю, что это, я не могу сказать, какой ответ он сочтет правильным...

-121--4196149-

Если вы просто хотите исправить ошибку javascript браузера и отобразить сообщение об исключении для пользователя, вы просто должны добавить это в ваш Masterpage где-то после объявления формы:

<!-- This script must be placed after the form declaration -->
<script type="text/javascript">
    Sys.Application.add_load(AppLoad);

    function AppLoad() {
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequest);
    }

    function EndRequest(sender, args) {
        // Check to see if there's an error on this request.
        if (args.get_error() != undefined) {

            var msg = args.get_error().message.replace("Sys.WebForms.PageRequestManagerServerErrorException: ", "");

            // Show the custom error. 
            // Here you can be creative and do whatever you want
            // with the exception (i.e. call a modalpopup and show 
            // a nicer error window). I will simply use 'alert'
            alert(msg);

            // Let the framework know that the error is handled, 
            //  so it doesn't throw the JavaScript alert.
            args.set_errorHandled(true);
        }
    }
</script>

Вам не нужно ловить OnAsyncPostBackError, даже если вы не хотите настроить сообщение. Если вы хотите получить дополнительную информацию, перейдите в мой блог.

10
ответ дан 30 November 2019 в 17:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: