Игнориране/деактивиране на обратно изпращане на потребителския контрол, ако javascript е активиран

Търсих високо и ниско за някакво решение на този проблем. Дано някой тук може да обясни!!

Създавам потребителска контрола, която използва .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 е активиран. Ако това се отнася за квадратчета за отметка (UI преизчислява дължима сума всеки път, когато потребител щракне върху квадратче за отметка в ред), единственият начин, който виждам за задействане на обратно изпращане, е чрез използване на AutoPostBack=True.... но това винаги ще прави обратно изпращане независимо на клиентския скрипт ..... arghhh.

Някой знае ли как се прави това....или подхождам към това от грешен ъгъл?!??

Поздрави

Ричард


person user481777    schedule 20.10.2010    source източник


Отговори (2)


AutoPostBack = true се реализира чрез javascript. Така че, ако потребителят е деактивирал javascript, това също няма да работи. Единственият начин да получите PostBack, когато javascript е деактивиран, е с потребителска контрола, която се изобразява на клиента като <input type="submit" />, тъй като това кара браузъра да публикува формуляра. Всички сървърни контроли, които изобразяват javascript:__doPostBack() връзки, няма да работят.

person Ken Browning    schedule 20.10.2010

Предполагам, че вероятно можете да го направите с помощта на UpdatePanel:

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

http://ajax.net-tutorials.com/controls/updatepanel-control/

Но разбира се, логиката ще бъде в сървъра, използвайки ajax или обратно изпращане, а не в клиента.

person netadictos    schedule 20.10.2010