【问题标题】:Need assistance calling variables declared in .net for execution inside JavaScript需要帮助调用在 .net 中声明的变量以在 JavaScript 中执行
【发布时间】:2015-04-02 21:00:38
【问题描述】:

.net 中定义的以下变量是:

<asp:Label ID="lblGrandTotal" runat="server" CssClass="TextTitle"></asp:Label>
<asp:Label ID="lblOrderNumber" runat="server" CssClass="TextTitle"></asp:Label>
<asp:Label ID="lblEmail" runat="server" CssClass="TextTitle"></asp:Label>

...需要传递给 JavaScript 以跟踪结帐“成功页面”上的转化: *: "revenue" 是需要在其中调用 asp 声明的变量的值(收入、订单 ID 和电子邮件),标签相同:

<script type="text/javascript">
_code.push(["setdata", { "revenue": "revenue"}]);
_code.push(["setdata", { "orderId": "orderId" }]);
_code.push(["setdata", { "email": "email" }]);
_code.push(["convert", "sale" ]);
</script>

我们尝试了一次变量召回的不成功迭代:

<script type="text/javascript"> 
var lblGrandTotal = $('#<%= lblGrandTotal %>');
var lblOrderNumber = $('#<%= lblOrderNumber %>');
var lblEmail = $('#<%= lblEmail %>');

_code.push(["setdata", { "revenue": "lblGrandTotal"}]); 
_code.push(["setdata", { "orderId": "lblOrderNumber" }]);    
_code.push(["setdata", { "email": "lblEmail" }]);
_code.push(["convert", "sale" ]);
</script>

还有其他想法(但我不确定):

由于变量已经在“结帐”页面的其他地方声明,我不知道是否可以在 JS 块中调用它:

<script type="text/javascript">
_code.push(["setdata", { "revenue": "<%=lblGrandTotal%>"}]);
_code.push(["setdata", { "orderId": "<%= lblOrderNumber %>" }]);
_code.push(["setdata", { "email": "<%= lblEmail %>" }]);
_code.push(["convert", "sale" ]);
</script>

...如果这不起作用,下一个想法是:

<script type="text/javascript">
var revenue = "<%= lblGrandTotal %>";
var orderId = "<%= lblOrderNumber %>";
var email = "<%= lblEmail %>";

_code.push(["setdata", { "revenue": "revenue"}]);
_code.push(["setdata", { "orderId": "orderId" }]);
_code.push(["setdata", { "email": "email" }]);
_code.push(["convert", "sale" ]);
</script>

在此先感谢,你们会非常乐于助人,如果我没有任何 ASP 编码经验,我将不胜感激。

【问题讨论】:

    标签: javascript asp.net variables data-conversion


    【解决方案1】:

    请更正以下内容:

    Javascript 中服务器控件的用户 ClientID &lt;%= lblGrandTotal.ClientID %&gt;

    要设置变量的值,不要放双引号 ("lblEmail")。您只需要使用实际的变量名 (lblEmail)。放置 双引号 使其成为字符串值 ("lblEmail") 而不是 变量

    var lblGrandTotal = $('#<%= lblGrandTotal.ClientID %>');//add ClientID
    var lblOrderNumber = $('#<%= lblOrderNumber.ClientID %>');//add ClientID
    var lblEmail = $('#<%= lblEmail.ClientID %>');//add ClientID
    
    _code.push(["setdata", { "revenue": lblGrandTotal}]); //remove double quotes from lblGrandTotal
    _code.push(["setdata", { "orderId": lblOrderNumber }]); //remove double quotes from   
    _code.push(["setdata", { "email": lblEmail }]); //remove double quotes from 
    _code.push(["convert", "sale" ]);
    

    【讨论】:

    • 感谢 Vijay,我已将代码传递给客户,如果成功(看起来应该如此),我会跟进确认。干杯!
    • 当然,您应该在发送给客户端之前练习进行单元测试;)
    • 不继续代码。当然,页面上存在以前不存在的运行时错误(怀疑它与此有关),我需要确认这些变量在页面前面的实际声明位置...更多后续(除非有其他想法)。
    猜你喜欢
    • 2013-10-17
    • 1970-01-01
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    • 2020-11-12
    • 2020-10-09
    • 1970-01-01
    相关资源
    最近更新 更多