簡體   English   中英

ASP.NET:回發后如何保留使用javascript在服務器控件上設置的值

[英]ASP.NET: How to retain values set on server controls with javascript after post back

我正在創建一個ASP.NET網站,該網站的第一頁將進行一些計算(如果相關的話,它會使用一些公式來計算退休計划),並包含一堆字段和標簽,用戶可以在其中輸入數字,並在鍵盤上輸入-下來,我讓JavaScript代碼運行計算並使用數字更新標簽。 然后,我想將這些值傳遞到下一頁,在該頁面將對其進行解析並放入條形圖中以進行摘要,但是我一直在獲取標簽的默認值。 我知道這與頁面的回發有關。

我嘗試使用隱藏字段來存儲值,但它們也正在被重置。 我見過的許多解決方案與這里的解決方案類似,但我也都嘗試不了。

javascript代碼如下:

function RATotal() {
    $('#lblRATotal').text("$" + (masterRANQAptERI + masterRAPTQptERI + 
                                 masterRARQAptERI + lumpsum).format());

    masterRATotal = (masterRANQAptERI + masterRAPTQptERI + masterRARQAptERI + lumpsum);

    document.getElementById('<%= hiddenRAtotal.ClientID %>').value = masterRATotal;
    document.getElementById('hideRAtotal').value = masterRATotal;
}

ASP / HTML:

<tr>
  <td>
    <span>Total After-Tax Equivalent Contribution: </span>
    <asp:Label runat="server" ID="lblRAATTotal" Text="$X.XX" Font-Bold="true" />
  </td>
  <td>
    <span>Total Pre-Tax Equivalent Contribution: 
      <asp:Label runat="server" ID="lblRAPTTotal" Text="$X.XX" Font-Bold="true" />
    </span>
  </td>
  <td>
    <span>Total Retirement Retirement Income:</span>
    <br />
    <asp:Label runat="server" ID="lblRATotal" Text="0.00" Font-Bold="true" />
    <asp:HiddenField runat="server" ID="hiddenRAtotal" EnableViewState="True" />
    <input id='hideRAtotal' name='hideRAtotal' type='hidden' />
  </td>
</tr>

C#代碼如下

protected void btnSummary_Click(object sender, EventArgs e)
{
    string RAOtotal2 = hiddenRAtotal.Value.ToString();
    Session["RAOtotal"] = RAOtotal2
    Response.Redirect("ChartDataQuery.cshtml");
}

根據我讀過的所有內容,這應該可以解決問題……但是當我嘗試使用它時,我實際上只是得到一個“或”或null。 我扣除了“,”並不是錯誤的計算,因為當我將值設置為手動定義的字符串時,我也會得到“,”。 我仍在學習這些東西,我將不勝感激! 謝謝!

感謝@wazz幫助我解決了這一問題。

該行document.getElementById('<%= hiddenRAtotal.ClientID %>').value = masterRATotal; 是什么打破了這個。 我刪除了該行,現在可以正常工作了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM