【问题标题】:setting javascript value from backend code从后端代码设置 javascript 值
【发布时间】:2012-03-30 02:08:25
【问题描述】:

我想知道如何从我的后端代码中设置一个 javascript 值。 我有这行JS代码:

 gts.push([ 'google_base_offer_id', 'ITEM_PRODUCT_SEARCH_ID']);

我现在正在尝试的是:

gts.push(['google_base_offer_id', document.getElementById("hidden").value]);

我在标记中设置了隐藏值:

<asp:HiddenField ID="hidden" runat="server" />

在后端代码中,OnPreRender 事件,我正在这样做:

hidden.Value = product.ProductId.ToString();

该值已正确设置,但是当我在浏览器中查看源代码时,该值未填充。 我做错了什么,是否可以填充这样的值? 在此先感谢 Laziale

【问题讨论】:

  • 那个ID会改变,你需要设置ClientId。
  • 查看源码时,隐藏字段的ID是否还“隐藏”? asp.net 有时会更改 asp 元素的 ID。

标签: c# javascript asp.net javascript-framework


【解决方案1】:

你应该可以这样做:

gts.push(['google_base_offer_id', document.getElementById('<%= hidden.ClientID %>').value]);

【讨论】:

  • 这里有任何编码问题,因为这是嵌入在 HTML 中的 JavaScript……不应该是 &lt;%= some_asp_json_encode_function(hidden.ClientID %&gt; 吗?
  • @Danite 什么都没发生我得到这个:gyazo.com/a7be6c637f975a1f1a6fd7794175bc95
  • 所以,你得到了隐藏字段的 ID。你只需要使用 getElementById... 我更新我的答案。
  • 我觉得不错。当您加载页面时,脚本将运行,该值将在 gts.push 中使用。您是否在 推送方法调用之后检查 gts 是否具有正确的值?
  • @Dante 当我在做 alert(ProductId) 我可以看到我需要的值,现在我这样做:gyazo.com/ed288479fe46803ce04e87ff2784bc3b,代码中没有错误,但是当我去查看源我看到这个:gyazo.com/759a6c29cabdb3e9190e63b087f28f64 我希望看到 productID 的值而不是 productID var。这很奇怪,因为使用警报命令可以正确打印出值,但是使用查看源代码,productID 是我所看到的。
【解决方案2】:

你也可以这样试试:

如果您在页面中使用 ScriptManager,那么您可以在后面的代码中将 javascript 值注册到隐藏字段中

ScriptManager.RegisterHiddenField(this, "hiddenKey", "hiddenValue");

然后在aspx页面中你可以使用

gts.push(['google_base_offer_id', document.getElementById("hiddenKey").value]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-08
    • 2015-04-28
    • 1970-01-01
    相关资源
    最近更新 更多