0

我在.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>
4

3 回答 3

2

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

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

现在YourDataPager应该输出为 a<div>而不是<span>.

于 2013-02-22T12:07:56.607 回答
2

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

public override void RenderBeginTag(System.Web.UI.HtmlTextWriter writer)
{
    writer.Write(String.Format("<div id=\"{0}\" class=\"{1}\">",
                               this.ClientID,this.CssClass));
}
于 2013-02-22T12:12:36.833 回答
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">

...您可以从那里相应地设置样式。

于 2013-02-22T12:04:30.053 回答