在客户端更改时,ASP.NET隐藏场值不更新



i有一个来自代码范围的JavaScript函数,该函数既有输入参数又有返回值。我发现其他人需要类似的功能,并将其作为可能的解决方案提供。因此,这正是我要做的 - 使用这样的控件模拟函数值返回行为。

问题在于,一旦客户端单击按钮是该特定字段的先前值,我就可以在代码方面得到的一切。第一次是零,下次下次它是" true"或" false"(作为字符串),具体取决于客户的选择。好吧,我无法使用以前的价值,它必须是"实时"。

我听说人们提到Ajax是在客户端和服务器之间进行交流的一种方式,但我不知道如何实现该解决方案。

我将根据您的要求提供其他信息。

标记(部分):

<body id="body">
    <form id="mainForm" runat="server">
        <asp:ScriptManager runat="server" ID="scriptManager" EnablePageMethods="true">
            <Scripts>
                <asp:ScriptReference Path="/jquery-2.1.0.js" />
                <asp:ScriptReference Path="/Dialog.js" />
            </Scripts>
        </asp:ScriptManager>
        <asp:HiddenField id="hfData" ClientIDMode="Static" runat="server" />
    </form>
</body>

javaScript:

function deleteDialog(contact) {
    var response = confirm('Are you sure you want to delete the contact ' + contact + '?');
    var hiddenField = $('#hfData')[0]; // fetches the element as expected
    hiddenField.value = response.toString();
    alert(hiddenField.value); // prints correct values
}

代码范围:

Address addressDelete = addressService.fetchById(contactDelete.address_id);
string contactFullName = String.Join(" ", contactDelete.first_name, contactDelete.last_name);
Page.ClientScript.RegisterStartupScript(this.GetType(), "delete", "deleteDialog('" + contactFullName + "');", true);
Response.Write(hfData.Value); // I've also tried the Request.Form method but to no avail
contactService.delete(contactDelete);
addressService.delete(addressDelete);

尝试此

function deleteDialog(contact) {
var response = (confirm('Are you sure you want to delete the contact ' + contact + '?')) ? true : false;
var hiddenField = $("<%= hfData.ClientID %>").value; // fetches the element as expected
/*hiddenField.value = response.toString();*/
alert(hiddenField); // prints correct values
}

或检查:

  alert(document.getElementById("<%=hfData.ClientID%>").value);

最新更新