簡體   English   中英

Asp.Net數據屬性通過JS / jQuery動態更新,但通過后面的代碼檢索時更新的屬性不會更新

[英]Asp.Net data attributes dynamically updated through JS/jQuery but the updated attributes aren't updated when retrieved through code behind

我有一個aspx頁面的圖像,當選擇時,會出現一個彈出窗口,提示各種信息tid位,然后我通過使用jQuery將信息作為數據屬性存儲在隱藏標簽上(即data-id="####"data-difficulty="###"等)。 我承認這不是最好的方法,但我已經嘗試了其他的東西(見下文),但還沒有任何工作。

我一直在嘗試,無濟於事,檢索動態更新的數據屬性,以便各種項目可以存儲到我的本地ms sql數據庫。 更新屬性非常有效,因為我可以在Chrome的開發者工具中正確查看正在更新的項目。 盡管如此,當我嘗試拉出相同的屬性時,我可以看到它被更新,我無法在后面的代碼中檢索更新的值並繼續獲取初始值(通常是空字符串“”)。

這是aspx頁面上的實現:

<asp:Label runat="server" ID="lblSelection" data-id="" data-count="" data-price="" data-difficulty=""  CssClass="selected-items" />

這是在同一頁面上進一步向下點擊“提交”按鈕時調用的相關方法:

protected void SubmitClicked(object sender, EventArgs e)
{
    var currentID = lblSelection.Attributes["data-id"];
    var currentCount = lblSelection.Attributes["data-count"];
    var currentPrice = lblSelection.Attributes["data-price"];
    var currentDifficulty = lblSelection.Attributes["data-difficulty"];

    if (currentID == null || currentID == "")
    {
              // stop and throw an informative message to the user
    }else{
             // keep processing ...
    } 
}

麻煩的是,當我在調試模式下運行項目並檢查這些元素時(再次確保我可以直觀地看到屬性在開發人員工具中實際更新),它們都是“”的初始值。 我唯一的猜測是,有一些回發問題,但我不認為這會發生,直到我的方法被調用和完全處理。 作為一個注釋,我正在將圖像填充到頁面上,並根據項目的ID通過sql調用更新其屬性:

<img runat="server" src="" data-id="12345" />

初始加載都完美無缺,因此我可以從代碼中清楚地設置屬性。 無論出於何種原因,雖然在jQuery更新標簽的屬性(點擊一些點擊等等)后,我無法在后面的代碼中獲取更新的屬性值。 任何有關此的提示或想法將不勝感激。

你想要做的事情是行不通的,因為:

  1. 自定義屬性的值不回發到服務器(如討論這里 )。

  2. 即使您在客戶端代碼中設置Label的文本,它也不會在代碼隱藏中的Text屬性中可用。 Label在頁面中呈現為span元素,並且該類型元素的內容不會發布回服務器。

本主題中給出了回發中包含的一個很好的屬性列表: 瀏覽器收集哪些值作為回發數據?

正如mshsayem所建議的那樣,你應該使用HiddenFields。 如果出於某種原因,您希望以不同方式執行此操作,則可以使用隱藏的TextBox,在客戶端代碼中設置它們的value ,並使用代碼隱藏中的Text屬性檢索它。 換句話說:HiddenFields不是唯一可以在代碼隱藏中檢索客戶端代碼中設置的值的控件(但如果不顯示控件,它們是顯而易見的選擇)。

暫無
暫無

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

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