The Label control in ASP.NET seems to render <span>
tags, but is there a server control to render HTML within a <div>
?
Sure, I could set display: block
and it might look the same, but I'd rather not be nesting divs inside spans. Also I'd prefer not to use <%= MyVariable %>
because that might not behave nicely on postbacks.
Any suggestions, please?
I think you need HtmlGenericControl
class. It has a constructor which accepts a string variable which initializes a new instance of the HtmlGenericControl
class with the specified tag:
var div = new HtmlGenericControl("div");
It is also has InnerHtml
and InnerText
properties (you mentioned this in a comment to the previous answer).
Of course: ASP.NET has a built-in control called Panel!
And you may use it as follows:
<asp:Panel ID="myPanel" runat="server">
<!-- Other markup here like client and server controls/elements -->
</asp:Panel>
Try the Panel control.
Try this:
<div class="myclass">
<asp:Literal ID="mytext" runat="server"></asp:Literal>
</div>
Set your text inside Literal
, which renders without html tag
<asp:Panel>
<div id="NoRecords" runat="server" visible="false">No records are available.</div>
</asp:Panel>
Code-Behind
protected void MyRepeater1_PreRender(object sender, EventArgs e)
{
if (MyRepeater1.Items.Count == 0)
{
NoRecords.Visible = true;
}
else
{
NoRecords.Visible = false;
}
}
div runat="server" id="myserversideDiv"
my inner text here. It has inner text and inner html property and most of asp.net server control property. Try that.
来源:https://stackoverflow.com/questions/5675084/asp-net-control-to-render-a-div