我正在创建一个页面,该页面允许用户从服务器上的现有列表中删除值,然后将新列表(已删除值)保存到服务器。
我已经让 javascript 函数获得了正确的值,但我只是无法将更新的列表返回到服务器。为了保持精简,我有 viewstatemode="disabled"。
我已经看到了从客户端执行 javascript 的各种方法。
我想知道的是,在页面通过 OnInit、OnLoad 函数之前,是否有可能有一个调用 javascript 函数的按钮,获取它返回的值(或保存在某个字段中)?
我正在创建一个页面,该页面允许用户从服务器上的现有列表中删除值,然后将新列表(已删除值)保存到服务器。
我已经让 javascript 函数获得了正确的值,但我只是无法将更新的列表返回到服务器。为了保持精简,我有 viewstatemode="disabled"。
我已经看到了从客户端执行 javascript 的各种方法。
我想知道的是,在页面通过 OnInit、OnLoad 函数之前,是否有可能有一个调用 javascript 函数的按钮,获取它返回的值(或保存在某个字段中)?
创建如下隐藏字段
<input type="hidden" ID="hfid" />
从javascript设置值
document.getElementById("hfid").value = "value to set";
你可以像下面这样从服务器访问它
string fromclient = Request.Form["hfid"];
我同意以前的答案(即将值存储在隐藏字段中)。它也可以通过使用 cookie(持久或非持久)来实现。问候, AB
我不想看起来像个驴子并回答我自己的问题,但为了帮助其他偶然发现此问题的人:
我解决这个问题的方法是使用 asp:Button 控件的 OnClientClick 属性。这允许您调用客户端 javascript 函数(显然),但更重要的是,它允许您在页面生命周期开始之前执行代码。
<asp:Button runat="server" ID="btnSave" Text="Save" onclick="btnSave_Click" OnClientClick="saveCurrentList();" />
保存当前列表();是我在我的 aspx 页面头部的一个 javascript 函数,它收集页面上的值(已被 javascript 修改,以及我需要在页面回发之前发生这种情况的原因)。我将它保存在一个字段中(使用 jQuery)并使用它的 val() 将它保存在字段中;方法:
function saveCurrentList() {
var list = $("#currentList a").map(function () {
return $(this).text();
}).get();
$("#hdnCurrentList").val(list.join(","));
}
使用这些技术,我可以让 javascript 在回发之前将值保存到隐藏字段,然后在服务器端检索它们进行处理。