2012-02-21 103 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属性。