如何从Code Behind获取Label innertext

时间:2012-02-21 01:09:20

标签: c# asp.net html

我有html label contol而没有runat =“server”

是否可以从c#后面的代码中获取内部文本?

标签:

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

由于

4 个答案:

答案 0 :(得分:4)

每次将ASP.Net页面发回服务器时,都会使用页面中包含的自定义代码(例如对数据库的调用)从头开始重新创建HTTP post / get集合(包括{{1 }}),ViewStateApplicationCache,静态对象等中的所有自定义数据

如果这些位置中的任何值都不存在,则服务器无权访问它。从客户端传递数据的常见技巧是简单地使用隐藏字段。如果您想要更优雅的东西,可以使用异步AJAX从服务器发送/接收数据。

或者在这种情况下,您只需将Session添加到runat="server"即可。 asp:Label将保留回发之间的值,但它会反映客户端所做的更改,除非(再次)数据以某种方式传递回服务器。

请注意,ViewState通常是一件坏事,因为它实际上会使您的数据大小翻倍(或更多),并且(在我看来)会鼓励设计草率。

答案 1 :(得分:2)

我认为你不能这样做。你可以使用js获取标签,并从后面的代码调用js方法

答案 2 :(得分:2)

简答:不。

要从代码隐藏中访问此代码,您最少需要将runat="server"添加到label。这样您就可以使用Page.FindControl(String)访问它了。

如果您能够修改前端代码,首选方法是使用<asp:Label />。这将允许您通过在代码隐藏中使用控件的ID(特别是其Text属性)轻松访问。

答案 3 :(得分:1)

您是否想知道如何解析内部html的字符串值,或者您希望您的网页在运行时是否有文本写入标签?

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

为什么你需要标签之间的文字,这是一个实时网页?这听起来像一个糟糕的设计而不是一个要求。