當寫好一個自訂控制項,在頁面上註冊好後再頁面上添加一個試試,能正常看到效果,然而當執行這個頁面的時候報錯,未知的伺服器標記,在網上查了查,原來還得在web.config中加上一段話
自訂控制項
代碼
namespace PureTest
{
[ToolboxData("<{0}:Pager runat=server></{0}:Pager>")]
public class Pager:Control
{
public int CurrentPage
{
get; set;
}
public int PageSize
{
get; set;
}
public int TotalCount
{
get; set;
}
//hack:這裡應該把分頁時的URL條件帶上
protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
//var first = CurrentPage - 5;
//var end = CurrentPage + 5;
//var totalPage = GetPageCount();
//if (first < 1)
//{
// first = 1;
//}
//if (end > totalPage)
//{
// end = totalPage;
//}
//var sb = new StringBuilder();
//sb.Append("<div id='pager'>");
//for(var i=first;i<end;i++)
//{
// if(i==CurrentPage)
// {
// sb.AppendFormat("<strong>{0}</strong>", i);
// }
// else
// {
// sb.AppendFormat("<a href='{0}.html'>{0}</a>", i);
// }
//}
//sb.Append("</div>");
//writer.Write(sb.ToString());
writer.Write("my first control");
}
private int GetPageCount()
{
return PageSize == 0 ? 0 : (TotalCount + PageSize - 1)/PageSize;
}
}
}
頁面
代碼
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="PureTest._Default" %>
<%@ Register TagPrefix="MC" Namespace="PureTest"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<div style='height:30px;'></div>
<MC:Pager runat ="server"></MC:Pager>
</div>
</form>
</body>
</html>
web.config
代碼
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="MC" namespace="PureTest" assembly="PureTest"/>
</controls>
</pages>
參考連結:
http://blog.sina.com.cn/s/blog_55e42da60100i1t6.html
http://forums.asp.net/t/1337638.aspx