如果启用了javascript,则忽略/禁用usercontrol回发

时间:2010-10-20 14:11:39

标签: javascript asp.net jquery postback client-side

我已经搜索了高低,以解决这个问题。希望有人在这里解释!!

我创建了一个使用.NET Web控件的用户控件,但我希望通过避免完全回发来创建更流畅的用户体验,因此我编写了一些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 DISABLED来到我的网站。我们假设我可以检测是否启用了javascript。在这种情况下,我需要在服务器上的客户端上进行计算,这意味着我需要触发回发....

我该怎么做.....我只想在禁用javascript的情况下触发完整的回发。如果启用了javascript,我想使用客户端脚本。如果这适用于复选框(每次用户单击行复选框时UI重新计算应付金额复选框),我可以看到触发回发的唯一方法是使用AutoPostBack = True ....但这将始终进行回发,无论如何客户端脚本..... arghhh。

任何人都知道怎么做......或者我是从错误的角度接近这个?!??

亲切的问候

理查德

3 个答案:

答案 0 :(得分:4)

AutoPostBack = true是通过javascript实现的。因此,如果用户禁用了javascript,则无法使用。在禁用javascript时获取PostBack的唯一方法是使用usercontrol,它以<input type="submit" />的形式呈现给客户端,因为这会导致浏览器发布表单。任何呈现javascript:__doPostBack()链接的服务器控件都不起作用。

答案 1 :(得分:0)

我猜你可能可以使用UpdatePanel来做到这一点:

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

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

但当然,逻辑将在服务器中,使用ajax或回发,而不是在客户端。

答案 2 :(得分:0)

$("#btnSave").attr('disabled', true);