创建用户HTML控件

时间:2016-09-27 09:34:39

标签: c#

我想创建一个自定义Html控件。

在ASPX中:

<custom:Message runat="server" ID="" 
                Type="" // { "Tip", "Note", "Important", "Warning" , "Caution" }
                Label=""
                Text=""
                Visible="" />

生成的Html:

<div class="fixedClass customClass">
<span class="label">caution</span><hr>
<blockquote>
    <p>
        <strong>Important:</strong> 
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ipsum lectus, cursus id rutrum vel
        , feugiat eget leo. <strong>Cras suscipit urna vel</strong> nibh placerat vestibulum. 
    </p>
</blockquote>

属性:
Type是主div的customClass 标签是<span class="label">中的文字 文本是<p>块中的文本。

1 个答案:

答案 0 :(得分:1)

您可以使用ASP.NET用户控件。它是ASP.NET Forms的一个非常常见且常用的功能。我很惊讶你的研究还没有完成: - )

无论如何,当你转到&#34;添加新项目时,你可以创建一个新的用户控件&#34;在Visual Studio中。选择&#34;网络用户控制&#34;从模板列表。这将创建一个扩展名为.ascx的文件 - 这是您的用户控件。在其中,您可以添加任何您想要的HTML标记,javascript和其他.NET控件(甚至其他用户控件)。它还具有代码隐藏功能,可以像整页一样响应事件等。

一旦创建并包含在您的项目中,您就可以在主aspx页面中使用。这有两个部分 - 首先添加一个指令来注册控件,然后你可以添加一个标签来使用控件,就像使用内置控件一样。

<%@ Register TagPrefix="uc" TagName="myControl" Src="~/Controls/myControl.ascx" %>
...
<uc:myControl id="ctrl1" runat="server"/>

如果你想在控件上有属性(例如&#34; Label&#34;和&#34; Text&#34;正如你所讨论的那样,在控件的代码隐藏中定义公共属性:

public string Label { get; set; }
public string Text { get; set; }

然后显然在代码中的某处可以使用这些值来填充UI或其他任何内容。

在标记中使用它们:

<uc:myControl id="ctrl1" runat="server" Label="TestLabel" Text="TestText" />

或者,您可以从您使用控件的页面的代码隐藏中填充它们,就像对象的任何公共属性一样。

可在此处找到更多信息:https://msdn.microsoft.com/en-us/library/wt3k2fyw.aspx(如何创建用户控件) 和https://msdn.microsoft.com/en-us/library/sbz9etab.aspx(如何将它们包含在您的页面中)