Как прервать какую-либо обратную передачу на странице? - ASP.NET

Я хочу прервать любые обратные передачи на текущей странице, ПРЕЖДЕ ЧЕМ она произойдет. Я хочу сделать некоторое пользовательское управление, прежде чем обратная передача будет подана. Какие-либо идеи, как сделать это?

11
задан NLV 10 June 2010 в 13:57
поделиться

5 ответов

Убедитесь, что оно добавлено в пучок. Для этого выберите изображение на левой панели навигации XCode, получите информацию о файле и убедитесь, что флажок для целевого объекта включен. Также убедитесь, что файл действительно png, а не просто имя таким образом.

-121--3445780-

Чтобы получить обратную передачу до того, как это сделает страница, вы можете создать и реализовать функцию ProcessRequest .

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

-121--2904343-

Существует несколько способов перехвата обратной связи на клиенте.

__ doPostBack функция похож на это:

function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}

Уведомление, которое это называет «theForm.onsubmit ()» прежде на самом деле сделать обратную передачу. Это означает, что при присвоении формы функции onsubmit javascript она всегда будет вызываться перед каждой обратной передачей.

<form id="form1" runat="server" onsubmit="return myFunction()">

Поочередно, вы можете на самом деле отвергнуть __ doPostBack, функционируют и заменяют его вашим собственным. Это старый трюк, который использовался еще в ASP.Net 1.0 дней.

var __original= __doPostBack;
__doPostBack = myFunction();

Это заменяет __ doPostBack функция с вашим собственным, и вы можете назвать оригинал от своего нового.

21
ответ дан 3 December 2019 в 02:40
поделиться

Чтобы получить обратную передачу до того, как это сделает страница, вы можете создать HttpHandler и реализовать функцию ProcessRequest .

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

2
ответ дан 3 December 2019 в 02:40
поделиться

не уверен, но я думаю, что вы ищете ..

if (Page.IsPostBack)
    { 
    }
0
ответ дан 3 December 2019 в 02:40
поделиться
<script type='text/javascript'>
var lookup = '\n\n\n\n\n\n2    PC Games        \n\n\n\n';
lookup  = lookup.trim() ;
alert(lookup );
                var tttt = 'tttt';
                alert((/\b(lookup)\b/g).test(2));

</script>

Немного трудно сказать, что вы пытаетесь сделать здесь. Что должна делать переменная tttt ?

В какой последовательности выполняется поиск? Вы пытаетесь найти 2 в строке поиска ? Затем необходимо:

/\b2\b/.test(lookup)

Следующее из регулярного выражения создает регулярное выражение, состоящее из границы слова, за которым следует последовательность «lookup» (не значение, содержащееся в переменной lookup ), за которым следует граница слова. Затем он пытается сопоставить это регулярное выражение с последовательностью «2» , полученным преобразованием числа 2 в последовательность:

(/\b(lookup)\b/g).test(2)

Например, следующее возвращает true :

(/\b(lookup)\b/g).test("something to lookup somewhere")
-121--1439860-

не уверен, но я думаю, что вы ищете..

if (Page.IsPostBack)
    { 
    }
-121--2904346-

Page.IsPostBack - ваш друг.

1
ответ дан 3 December 2019 в 02:40
поделиться

Вы можете проверить обратную передачу в одном из событий страницы для вашей формы.

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

Попробуйте следующее:

protected void Page_Init(object sender, EventArgs e)
    {
        if (Page.IsPostBack)
        {
            //Check for your conditions here, 

            if (Page.IsAsync)
            {
                //also you may want to handle Async callbacks too:
            }
        }
    }
1
ответ дан 3 December 2019 в 02:40
поделиться
Другие вопросы по тегам:

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