.net控制输出span标签,删除?

时间:2013-02-22 12:01:43

标签: c# asp.net html .net

我正在开发一个内置于.net的网站 - 我不知道它是如何工作的,但我有以下内容......

<asp:DataPager ID="DP" runat="server" PagedControlID="LV" PageSize="5" QueryStringField="jobs">
    <Fields>
        <asp:NumericPagerField />
    </Fields>
</asp:DataPager>

以上输出我的html如下

<span id="ctl00_ContentPlaceHolder1_ctl00_ctl00_ctl00_DP">
    <span>1</span>
    <a href="link">2</a>
    <a href="link">3</a>
    <a href="link">4</a>
</span>

有没有办法输出这个或不可能?...

<div>
    <span>
    <a>

3 个答案:

答案 0 :(得分:2)

据我所知,DataPager不支持开箱即用。但您可以通过覆盖DataPager属性扩展TagKey类:

public class YourDataPager : DataPager
{
   protected override HtmlTextWriterTag TagKey 
   {
      get { return HtmlTextWriterTag.Div; }
   }
}

现在YourDataPager应该以{{1​​}}而不是<div>输出。

答案 1 :(得分:2)

在您的服务器控件中,您可以覆盖RenderBeginTag方法:

public override void RenderBeginTag(System.Web.UI.HtmlTextWriter writer)
{
    writer.Write(String.Format("<div id=\"{0}\" class=\"{1}\">",
                               this.ClientID,this.CssClass));
}

答案 2 :(得分:0)

CssClass添加到<asp:DataPager>

<asp:DataPager CssClass="myCSSClass" ID="DP" runat="server" PagedControlID="LV" PageSize="5" QueryStringField="jobs">

它应输出:

<span id="ctl00_ContentPlaceHolder1_ctl00_ctl00_ctl00_DP" class="myCSSClass">

...你可以从那里开始相应的风格。