2012-02-21 108 views
2

標籤內的文字我有HTML標籤控逆變不RUNAT =「服務器」如何從代碼隱藏

是否有可能得到來自背後的C#代碼內的文本?

標籤:

<label id="lblClanName">Text Here</label> 

感謝

回答

4

每次一個ASP.Net頁面被回發到服務器,它使用頁面中包含的自定義代碼(例如對數據庫的調用),HTTP post/get collections(其中包括ViewState),Application中的任何自定義數據,CacheSession,靜態對象等

如果這些值中不存在任何這些位置,則服務器無權訪問它。從客戶端傳遞數據的常見技巧是簡單地使用隱藏字段。如果你想要更優雅的東西,你可以使用異步AJAX從服務器發送/接收數據。

或者在這種情況下,您可以將runat="server"添加到asp:LabelViewState將維持回傳之間的值,儘管它會而不是反映客戶端所做的更改,除非(再次)數據以某種方式傳回服務器。

請注意ViewState通常是一件壞事,因爲它本質上是數據量的兩倍(或者更多),並且(在我看來)會鼓勵馬虎的設計。

2

我不認爲你可以做it.either你可以用js得到拉布勒,並從代碼中調用JS方法背後

1

你想知道如何解析內部html的字符串值,或者你期望你的網頁在運行時有文字寫入標籤嗎?

string labelHtml = "<label id="lblClanName">Text Here</label>"; 
    XmlDocument doc = new XmlDocument(); 
    doc.LoadXml(labelHtml); 
    string innerText = doc.DocumentElement.InnerText; 

爲什麼你需要標籤之間的文本,這是一個活的網頁?這聽起來像一個不好的設計比一個要求。

2

簡答題:沒有。

要從您的代碼隱藏中訪問此代碼,您最低限度需要將runat="server"添加到您的label。這將允許您使用Page.FindControl(String)訪問它。

如果您能夠修改前端代碼,首選的方法是使用<asp:Label />。這將允許您通過在代碼隱藏中使用控件的ID輕鬆訪問,特別是其Text屬性。