创建自定义 Web 控件

Posted

技术标签:

【中文标题】创建自定义 Web 控件【英文标题】:Creating Custom Web Control 【发布时间】:2018-03-06 16:08:11 【问题描述】:

我正在尝试,但我对 Web 窗体的经验有限。如何访问在打开和关闭标签之间传递的文本?控件应该像这样工作。

用法

<asp:YesOrNoQuestion>Are you above the age of 18 ? </asp:YerOrNoQuestion>

控制

<tr id="trQ6CA" runat="server" visible="false">
    <td>
        <asp:Label ForeColor="Black" ID="QuestionLabel" runat="server">
          // Question Goes Here
        </asp:Label>
    </td>
    <td>
        <asp:RadioButtonList ID="buttonCollection" runat="server" RepeatDirection="Horizontal">
            <asp:ListItem Value="Y">Yes</asp:ListItem>
            <asp:ListItem Value="N">No</asp:ListItem>
        </asp:RadioButtonList>
    </td>
    <td>
        <asp:RequiredFieldValidator ControlToValidate="buttonCollection" ID="Requiredfieldvalidator" InitialValue="" runat="server" Text="*" ValidationGroup="vgApplication">
            *
        </asp:RequiredFieldValidator>
    </td>
</tr>

我要替换的代码

<tr id="trQ6CA" runat="server" visible="false">
    <td valign="top" align="left">
        <asp:Label ID="Label10" runat="server" ForeColor="Black">
            <b>DOES THE PROPOSED INSURED:</b> 
            &nbsp;Have a comprehensive health benefits from an insurance policy, an HMO plan, or employer health benefit plan? <br />
            If No, persons without such comprehensive coverage are not eligible for this insurance policy.
        </asp:Label>
    </td>
    <td valign="top">
        <asp:RadioButtonList ID="rbtQ6S1" runat="server" RepeatDirection="Horizontal">
            <asp:ListItem Value="Y">Yes</asp:ListItem>
            <asp:ListItem Value="N">No</asp:ListItem>
        </asp:RadioButtonList>
    </td>
    <td valign="top">
        <asp:RequiredFieldValidator ID="Requiredfieldvalidator65" runat="server" Text="*" ControlToValidate="rbtQ6S1" InitialValue="" ValidationGroup="vgApplication">
            *
        </asp:RequiredFieldValidator>
    </td>
</tr>

【问题讨论】:

你也可以看看复合控件。我不喜欢这个解决方案。仅对这三个控件来说是非常不可读和难以管理的。最好的解决方案是使用用户控件 (ascx) 【参考方案1】:

注册控件时可以选择前缀和标签: https://msdn.microsoft.com/en-us/library/sbz9etab.aspx

【讨论】:

以上是关于创建自定义 Web 控件的主要内容,如果未能解决你的问题,请参考以下文章

winform 自定义控件

ASP.NET C# 中的自定义控件

Web用户自定义控件

安卓自定义控件初探---仿web验证码的实现

Xamarin.Forms自定义用户界面控件实现一个HybridWebView(混合webview)

JSP自定义tag控件标签