从codeehind填充隐藏字段,然后将其作为QueryStringASP/javascript传递回codeehind

populating hidden field from codebehind, then, passing it back to codebehind as QueryString ASP/javascript

本文关键字:codeehind QueryStringASP javascript 隐藏 填充 字段 然后      更新时间:2023-09-26

我在page_load方法中有这样的代码:

string orgId = Session["Lineage"].ToString().Split(';')[depth];
hidOrg.Value = orgId;

这在aspx页面中:

<input type="hidden" id="hidOrg" runat="server" />

function doRetrieveData(objVal) {
    var org = document.getElementById("hidOrg").value;
    //do stuff
    window.location.href = "summary.aspx?multiple=" + org
}

问题是,当给var org分配隐藏的"hidOrg"字段的值时,我得到了一个预期的对象错误。感谢您提前提供的帮助。

ASP.NET根据控件的NamingContainer生成服务器控件的ClientID。因此,您需要将ClientID传递给您的javascript函数。试试这个:

var org = document.getElementById('<%=hidOrg.ClientID%>').value;

内联ASP.NET标记

其他方法:

  1. 将hiddenfield的值也传递给javascript函数。您需要将隐藏字段直接放在DropDownList/Select后面,然后使用nextSibling获取对它的引用。

    onchange="doRetrieveData(this.value,this.nextSibling.value)
    
  2. 将隐藏字段的ClientIdMode设置为Static(如果使用.NET 4.0)

Response.Redirect("~/summary.aspx?multiple=" + hidOrg.Value);