从代码后面填充隐藏字段,然后将其作为QueryString ASP / javascript传递回代码

时间:2012-01-13 18:30:12

标签: javascript asp.net code-behind

我在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”字段的值时,我得到一个对象预期错误。感谢您提前提供任何帮助。

2 个答案:

答案 0 :(得分:1)

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

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

Inline ASP.NET tags

其他方法:

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

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

答案 1 :(得分:-1)

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