如何从代码隐藏中获取javascript值?

时间:2011-07-07 17:59:14

标签: c# javascript asp.net

我在隐藏字段中设置值,如下所示:

((TextBox)ctrl).Attributes.Add("onchange", "document.getElementById('" + 
  ((BasePage)Page).GetControl(Page, "ChangedRowsIndicesHiddenField").ClientID + 
  "').value.concat('" + row.RowIndex + ",');");

在页面源代码中,它看起来像这样:

onchange="document.getElementById('ctl00_CPHDefault_tcTPS_TPProd_ctl01_tcProduction_TPNewTitlesStatus_ChangedRowsIndicesHiddenField').value.concat('0,');" 

我希望能够在回发(按钮点击)中从代码隐藏中检索并使用此值:

string ChangedRowsIndices = ChangedRowsIndicesHiddenField.Value.TrimEnd(',');

但由于某种原因,ChangedRowsIndices总是空的。你能帮帮我吗?我究竟做错了什么? 这是隐藏的字段:

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

感谢。

1 个答案:

答案 0 :(得分:2)

如果不使用runat = server,请在此处添加名称

    <input id="ChangedRowsIndicesHiddenField" type="hidden"    
name="ChangedRowsIndicesHiddenField_ID" />

并在帖子中读取数据,如

HttpContext.Current.Request.Form["ChangedRowsIndicesHiddenField_ID"]

如果您使用runat =“server”离开它,请使用UniqueID

获取它
HttpContext.Current.Request.Form[ChangedRowsIndicesHiddenField.UniqueID]

再一次

您有值的错误,设置值使用document.getElementById('theid').value = 'new value'; 得到像

这样的渲染
document.getElementById('ctl00_CPHDefault_tcTPS_TPProd_ctl01_tcProduction_TPNewT‌​itlesStatus_ChangedRowsIndicesHiddenField').value = 'new value'

现在你以jQuery的方式输入它。