我正在开发一个内置于.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>
答案 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">
...你可以从那里开始相应的风格。