【问题标题】:Pass value from C# asp.net to JAVASCRIPT not working将值从 C# asp.net 传递到 JAVASCRIPT 不起作用
【发布时间】:2013-11-25 17:17:29
【问题描述】:

我有一个 JS 变量 valuePercent,我从 hdnParam.Value(从 C# 获得的字符串)获取它的值,但它不起作用。我使用 ParseInt() 将字符串转换为 int,但我的输出得到 NaN。有什么想法吗?

.ASPX.cs

 string test = "67";

 hdnParam.Value = test;

.ASPX

  <%-- Hidden field to store string to be displayed in gage--%>
   <input type="hidden" id="hdnParam" runat="server" clientidmode="Static" />
   <script>
    var valuePercent = document.getElementById("hdnParam").value; 
    var gg1 = new JustGage({
        id: "gg1",
        donut: 0,
        title: "LAKELAND",
        titleFontColor: "#000000",
        min: 0,           
        max: 100,           
        labelFontColor: "#000000",
        humanFriendlyDecimal: 1,
        decimals: 1,
        symbol: "%",
        refreshAnimationType: "bounce",
        gaugeWidthScale: 0.6,
        customSectors: [{
            color: "#ff0000",
            lo: 0,
            hi: 79
        }, {
            color: "#ffa500",
            lo: 80,
            hi: 89
        }, {
            color: "#1eae1e",
            lo: 90,
            hi: 100
        }],
        counter: true
    });
    function refreshDiv() {
        gg1.refresh(parseInt(valuePercent)); //THIS DOES NOT WORK
        gg1.refresh(45); //THIS WORKS
    }

    var myVar = setInterval(function () { refreshDiv() }, 1000);
</script>

【问题讨论】:

  • 你用什么方法来设置这个值?

标签: c# javascript asp.net raphael justgage


【解决方案1】:

设置Page_Load上隐藏字段的值,并在OnClientClick事件触发时调用javaScript函数。

MyPage.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
    hiddenFieldValue.Value = "this is the value";
}

标记:

<div>
    <asp:HiddenField ID="hiddenFieldValue" runat="server" />
    <asp:Button ID="ClickButton" runat="server" Text="Click Here" OnClientClick="DisplayValue()" />
</div>

javaScript:

function DisplayValue() {
        var valuePercent = document.getElementById("hiddenFieldValue").value;
        alert(valuePercent);
    }

【讨论】:

    【解决方案2】:

    你能检查一下“隐藏输入”的生成ID吗? ASP.NET 可能会为 id 添加前缀,我看到您已经设置了 clientidmode=static 但要求确定。

    如果 id 有前缀,你可能会得到它的值:

    document.getElementById("").value

    【讨论】:

    • 那么生成的 id 是什么?你能从页面源代码中检查它吗?
    • 对 JS 很陌生,我该怎么做?
    • 打开您的网络浏览器并转到该页面。右键单击页面,然后单击“查看源代码”。找出你隐藏的输入和它的“id”值。
    • 谢谢,这就是我的 hdnParam
    • 如您所见,它的值未设置。请在您的 aspx.cs 文件中添加一个断点,以确定您是否正在设置它的值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-24
    • 2015-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    相关资源
    最近更新 更多