簡體   English   中英

asp.net :( c#client-side)如何訪問頁面加載后創建的html元素?

[英]asp.net: (c# client-side) how to access html element created after page loads?

想象一下,

第1步:ASPX頁面加載。
第2步:按鈕觸發一個腳本,該腳本創建一個帶有id或class標記的html元素(div,span等),包括runat服務器屬性。

我的問題是,

最后一步: 從我的C#文件,如何訪問該元素並獲取它的內部html,所以我可以將它保存為字符串?

PS:我將使用該字符串將其保存在我的mssql數據庫中。

如果不對服務器執行完全回發,則無法創建“真實”的runat = server元素/控件。

最好的方法可能是在提交頁面之前編寫一些將innerHTML存儲到ASP.Net隱藏字段的腳本。 然后,您可以訪問此隱藏字段的值以獲取數據。

如果您想動態創建多個對象,則需要使用標准的html隱藏輸入字段,因為您無法通過javascript創建asp.net服務器控件。

<input type="hidden" name="fieldData_1" value="control 1 html content">
<input type="hidden" name="fieldData_2" value="control 2 html content">

然后,您就可以從Request.Form對象訪問這些隱藏字段:

Request.Form["fieldData_1"]

知道了這一點,您現在可以迭代表單數據並處理所有動態字段

foreach (string fieldData in Request.Form)
{
    if(fieldData.Contains("fieldData_"){
        //process the data for each field
    }
}

也可以避免一起使用隱藏字段,只需使用__doPostback('','')方法直接將數據傳遞給服務器。 這可以通過許多不同的方式實現,因此我將引用您http://dopostback.net來了解該方法的工作原理。

runat="server"屬性添加到標記以使其成為HTML Control,並且可以通過其ID從.cs文件訪問

我認為你需要將元素內部HTML發布回服務器。 我會做什么,在客戶端函數中,獲取新創建元素的內部HTML,將其存儲在隱藏字段中,然后調用__doPostBack('<hidden element id>', '');

暫無
暫無

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

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