0

我正在创建一个页面,该页面允许用户从服务器上的现有列表中删除值,然后将新列表(已删除值)保存到服务器。

我已经让 javascript 函数获得了正确的值,但我只是无法将更新的列表返回到服务器。为了保持精简,我有 viewstatemode="disabled"。

我已经看到了从客户端执行 javascript 的各种方法。

我想知道的是,在页面通过 OnInit、OnLoad 函数之前,是否有可能有一个调用 javascript 函数的按钮,获取它返回的值(或保存在某个字段中)?

4

3 回答 3

1

创建如下隐藏字段

<input type="hidden" ID="hfid" />

从javascript设置值

document.getElementById("hfid").value = "value to set";

你可以像下面这样从服务器访问它

string fromclient = Request.Form["hfid"];
于 2013-05-07T04:41:37.100 回答
0

我同意以前的答案(即将值存储在隐藏字段中)。它也可以通过使用 cookie(持久或非持久)来实现。问候, AB

于 2013-05-07T04:49:28.017 回答
0

我不想看起来像个驴子并回答我自己的问题,但为了帮助其他偶然发现此问题的人:

我解决这个问题的方法是使用 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 在回发之前将值保存到隐藏字段,然后在服务器端检索它们进行处理。

于 2013-05-08T01:20:10.963 回答