我四处寻找解决这个问题的办法。希望这里有人能解释一下!!
我创建了一个使用 .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。假设我可以检测是否启用了 javascript。在这种情况下,我需要在服务器上的客户端上进行计算,这意味着我需要触发回发....
我该怎么做......我只想在禁用 javascript 时触发完整的回发。如果启用了 javascript,我想使用客户端脚本。如果这适用于复选框(每次用户单击行复选框时 UI 都会重新计算应付金额),我能看到触发回发的唯一方法是使用 AutoPostBack=True ....但这将始终进行回发,无论客户端脚本的......arghhh。
任何人都知道如何做到这一点......或者我是从错误的 Angular 接近这个?!??
亲切的问候
理查德
最佳答案
AutoPostBack = true
通过javascript实现。因此,如果用户禁用了 javascript,那也不起作用。禁用 javascript 时获得 PostBack 的唯一方法是使用用户控件,它作为 <input type="submit" />
呈现给客户端因为这会导致浏览器发布表单。呈现 javascript:__doPostBack()
的任何服务器控件链接将无效。
关于javascript - 如果启用了 javascript,则忽略/禁用用户控件回发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3978777/