【问题标题】:How to re-use asp.net control on the page如何在页面上重用asp.net控件
【发布时间】:2023-03-20 11:08:02
【问题描述】:

我正在使用网络表单,并且在两个不同的块中有相同的文本。 HTML:

<div class="div1">
    <p>My text</p>
</div>
<div class="div2">
    <p>My text</p>
</div>

我必须使用 asp.net 控件。 我正在使用的代码

<asp:Literal runat="server" ID="lblText"></asp:Literal>

有什么方法可以将此控件重新用于第二个文本块,而不是使用另一个 ID 创建此控件的克隆?

我不能在这个页面上使用像&lt;%= 这样的标签。

【问题讨论】:

  • 在代码后面使用lblText2.text = lblText.Text;.
  • @VDWWD 我知道如何设置文本,但问题是:有没有办法重用这个控件而不创建另一个控件?
  • 使用中继器或创建用户控件。完全取决于你想要什么。

标签: asp.net webforms ascx


【解决方案1】:

是的,您可以将asp: Literal 与您的DIV 的HTML 一起封装在UserControl 中并公开Text 属性。

MyText.ascx:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="MyText.ascx.cs" Inherits="MyText" %>
<div>
    <p>
        <asp:Literal runat="server" ID="lblText" />
    </p>
</div>

MyText.ascx.cs:

using System.Web.UI;
public partial class MyText : UserControl
{
    public string Text
    {
        get
        {
            return lblText.Text;
        }
        set
        {
            lblText.Text = value;
        }
    }
}

并在 WebForm 中使用它:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ Register src="MyText.ascx" tagname="MyText" tagprefix="uc1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <uc1:MyText ID="uc1MyText1" runat="server" Text="My text"/>
        <uc1:MyText ID="uc1MyText2" runat="server" Text="My text 2"/>
        <uc1:MyText ID="uc1MyText3" runat="server" Text="My text 3"/>
    </form>
</body>
</html>

结果:

【讨论】:

    猜你喜欢
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多