Игнорировать / отключить постбэк управления пользователя, если включен JavaScript - PullRequest
1 голос
/ 20 октября 2010

Я искал максимум и минимум для решения этой проблемы.Надеюсь, кто-то здесь может объяснить !!

Я создаю пользовательский контроль, который использует веб-элементы управления .NET, но я хочу создать более плавный пользовательский интерфейс, избегая полных обратных передач, поэтому я пишу некоторую JQUERY для захвата событий нажатия на клиентеи таким образом выполняйте обработку, не возвращаясь на сервер.

        $("#tblLedgerEntries :checkbox").click(function () {
            var value1 = $(this).closest("tr").find("td.invoiceAmount").html();
            var value2 = $('#<%=hdnTotalToPay.ClientID%>').html();
            CalculateTotalPayable(value1, value2, $(this).attr("checked"));
        });

Все хорошо.Теперь кто-то заходит на мой сайт с отключенным JavaScript.Давайте предположим, что я могу определить, включен ли JavaScript или нет.В этой ситуации мне нужно будет выполнить вычисления, которые я выполнял на клиенте на сервере, что означает, что мне нужно запустить обратную передачу ....

Как мне сделать это ..... Я хочу тольковызвать полную обратную передачу, если JavaScript отключен.Я хочу использовать клиентский скрипт, если включен JavaScript.Если это относится к флажкам (пользовательский интерфейс пересчитывает подлежащую оплате сумму каждый раз, когда пользователь щелкает флажок строки), единственный способ увидеть обратную передачу - использовать AutoPostBack = True ...., но это всегда будет выполнять обратную передачу независимо от того,клиентского скрипта ..... arghhh.

Кто-нибудь знает, как это сделать .... или я подхожу к этому под неправильным углом?! ??

С уважением

Ричард

Ответы [ 3 ]

4 голосов
/ 20 октября 2010

AutoPostBack = true реализовано с помощью JavaScript. Так что, если у пользователя отключен JavaScript, это тоже не сработает. Единственный способ получить PostBack при отключенном javascript - это пользовательский контроль, который отображается клиенту как <input type="submit" />, так как это заставляет браузер публиковать форму. Любые серверные элементы управления, отображающие ссылки javascript:__doPostBack(), не будут работать.

0 голосов
/ 07 октября 2013
$("#btnSave").attr('disabled', true); 
0 голосов
/ 20 октября 2010

Я думаю, вы, вероятно, можете сделать это, используя UpdatePanel:

http://msdn.microsoft.com/es-es/library/bb386454%28VS.90%29.aspx

http://ajax.net -tutorials.com / управление / UpdatePanel-контроль /

Но, конечно, логика будет на сервере, используя ajax или postback, а не на клиенте.

...