我正在寻找一种通过ASP.NET C#中的用户控件返回一些格式化文本的方法。这基本上就是我要找的东西:
调用用户控件,例如
<mycontrol:formatedtitle id="blah" runat="server">Text to format</mycontrol:formatedtitle>
然后让它返回一些格式化的HTML,例如
<div class="blah">Text to format</div>
我一直在网上阅读有关创建用户控件的内容,但没有任何内容接近我正在寻找的内容。我可以通过调用命令并让它返回fomatted文本,例如:
,轻松地在PHP中完成此操作<? print_section_start("Text to format"); ?>
答案 0 :(得分:2)
如果你想使用UserControl
,那就相当容易了。这是一个基本的大纲。
假设您在根文件夹中创建了一个用户控制文件FormattedTitle.ascx
和文件FormattedTitle.ascx.cs
后面的代码。
标记如下:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="FormattedTitle.ascx.cs"
Inherits="FormattedTitle" %>
<asp:Label ID="lblTitle" runat="server" />
用户控件的代码如下:
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.Web;
using System.Web.UI;
public partial class FormattedTitle : System.Web.UI.UserControl
{
public string Title
{
get
{
return this.lblTitle.Text;
}
set
{
this.lblTitle.Text = value;
}
}
public string TitleFormat
{
get
{
if(ViewState["TitleFormat"] != null)
return ViewState["TitleFormat"].ToString();
return string.Empty;
}
set
{
ViewState["TitleFormat"] = value;
}
}
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
if(!string.IsNullOrEmpty(this.TitleFormat))
{
this.lblTitle.Text = string.Format(this.lblTitle.Text, this.TitleFormat);
}
}
}
我看到用户控件使用标记如下:
<%@ Register TagPrefix="uc" TagName="FormattedTitle" Src="FormattedTitle.ascx" %>
<uc:FormattedTitle ID="ftMyTitle" runat="server" Title="Title to Format" TitleFormat="SomeValidDotNetFormatString" />
未经测试,但应该让您入门。使用上述用户控件,您可以将标题及其格式设置为用户控件的属性。
有关.net中字符串格式的完整背景信息,请考虑使用以下资源:
修改强>:
回答你的问题:多个标签 - 你的意思是页面上有多个控件实例吗?这实际上是用户控件的本质和目的 - 您可以根据需要随时添加它们,例如:
<%@ Register TagPrefix="uc" TagName="FormattedTitle" Src="FormattedTitle.ascx" %>
<uc:FormattedTitle ID="ftMyTitle" runat="server" Title="Title to Format" TitleFormat="SomeValidDotNetFormatString" />
<uc:FormattedTitle ID="ftMyTitle2" runat="server" Title="Some Other Title to Format" TitleFormat="SomeOtherValidDotNetFormatString" />
这是多个标签的意思吗?
答案 1 :(得分:0)
你可以在这里做很多事情:
<%= print_section_start("text to format") %>
,这与您在PHP中的操作类似。<div>
标记提供id和runat="server"
属性,格式化后面代码中的文本,然后设置div的.InnerText属性答案 2 :(得分:0)
你也可以给mycontrol一个等于“Text to format”的属性
<mycontrol:formatedtitle id="blah" runat="server" someAttributeName="Text to format"></mycontrol:formatedtitle>
您甚至可以访问用户控件的开始和结束标记之间的文本吗?