从后面的代码创建html元素并在ASP.NET Web窗体中显示到前端

时间:2017-01-31 18:57:34

标签: c# html css asp.net

我需要从Code Behind读取/显示一些前端代码/元素。 场景:我有一个页面,其中有两个(2)< div&gt ;,顶部div和底部div。
我在顶部有两个按钮< div>如下所示和< div>在底部是空白的。以下是代码段:

Default.aspx的

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
    <div id="navbar">
        <asp:Button ID="btnHome" runat="server" Text="Home" OnClick="btnHome_Click" />
        <asp:Button ID="btnProducts" runat="server" Text="Products" OnClick="btnProducts_Click" />
    </div>
    <div id="contentArea">

    </div>
</form>
</body>
</html>

当我单击主页按钮时,一些HTML元素应该成为下面给出的div中Default.aspx页面的一部分:

<div id=contentArea">
</div>

并且居留代码应如下所示:

<div id="contentArea">
<h1>Home</h1>
<p>Home Elements here</p>
</div>

同样,当我点击“产品”按钮时,代码如下所示:

<div id="contentArea">
<h1>Products</h1>
<p>Products Elements here</p>
<asp:HyperLink ID="lnkMicrosoft" runat="server" Text="Go to Microsoft" NavigateUrl="http://www.microsoft.com"></asp:HyperLink>
<asp:HyperLink ID="lnkGoogle" runat="server" Text="Go to Google" NavigateUrl="http://www.google.com"></asp:HyperLink>
</div>

1 个答案:

答案 0 :(得分:6)

您可以使用 面板 来显示呈现为div标签的html内容。

例如,

ASPX

<div id="navbar">
    <asp:Button ID="btnHome" runat="server" Text="Home" OnClick="btnHome_Click" />
    <asp:Button ID="btnProducts" runat="server" Text="Products" 
        OnClick="btnProducts_Click" />
</div>
<asp:Panel ID="contentArea" runat="server">
</asp:Panel>

代码背后

protected void btnHome_Click(object sender, EventArgs e)
{
    var h1 = new HtmlGenericControl("h1") {InnerText = "Home"};
    contentArea.Controls.Add(h1);

    var p = new HtmlGenericControl("p") {InnerText = "Home Elements here"};
    contentArea.Controls.Add(p);
}

protected void btnProducts_Click(object sender, EventArgs e)
{
    var h1 = new HtmlGenericControl("h1") {InnerText = "Products"};
    contentArea.Controls.Add(h1);

    var p = new HtmlGenericControl("p") {InnerText = "Products Elements here"};
    contentArea.Controls.Add(p);

    var lnkMicrosoft = new HyperLink
    {
        Text = "Go to Microsoft",
        NavigateUrl = "http://www.microsoft.com"
    };
    contentArea.Controls.Add(lnkMicrosoft);

    var lnkGoogle = new HyperLink
    {
        Text = "Go to Google",
        NavigateUrl = "http://www.google.com"
    };
    contentArea.Controls.Add(lnkGoogle);
}