Club Web Site-Customized web controls
生活随笔
收集整理的這篇文章主要介紹了
Club Web Site-Customized web controls
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.自定義分頁
PageNumberer.cs
using?System;using?System.Data;
using?System.Configuration;
using?System.Web;
using?System.Web.Security;
using?System.Web.UI;
using?System.Web.UI.WebControls;
using?System.Web.UI.WebControls.WebParts;
using?System.Web.UI.HtmlControls;
/**////?<summary>
///?Control?that?displays?a?list?of?page?numbers?based?on?the?selected?page,
///?number?of?displayed?pages,?and?the?count?of?pages
///?</summary>
namespace?ClubSite
{
????public?class?PageNumberer?:?WebControl,?IPostBackEventHandler
????{
????????private?int?m_SelectedPage,?m_Count,?m_displayedPages;
????????public?PageNumberer()
????????{
???????????//No?constructor?logic.
????????}
????????public?int?SelectedPage
????????{
????????????get
????????????{
????????????????if?(m_SelectedPage?==?0)
????????????????{
????????????????????object?o?=?ViewState["SelectedPage"];
????????????????????m_SelectedPage?=?(o?!=?null)???(int)o?:?1;
????????????????}
????????????????return?m_SelectedPage;
????????????}
????????????set
????????????{
????????????????ViewState["SelectedPage"]?=?value;
????????????????m_SelectedPage?=?value;
????????????}
????????}
????????public?int?Count
????????{
????????????get
????????????{
????????????????if?(m_Count?==?0)
????????????????{
????????????????????object?o?=?ViewState["Count"];
????????????????????m_Count?=?(o?!=?null)???(int)o?:?1;
????????????????}
????????????????return?m_Count;
????????????}
????????????set
????????????{
????????????????ViewState["Count"]?=?value;
????????????????m_Count?=?value;
????????????}
????????}
????????public?int?DisplayedPages
????????{
????????????get
????????????{
????????????????if?(m_displayedPages?==?0)
????????????????{
????????????????????object?o?=?ViewState["DisplayedPages"];
????????????????????m_displayedPages?=?(o?!=?null)???(int)o?:?1;
????????????????}
????????????????return?m_displayedPages;
????????????}
????????????set
????????????{
????????????????ViewState["DisplayedPages"]?=?value;
????????????????m_displayedPages?=?value;
????????????}
????????}
????????protected?override?HtmlTextWriterTag?TagKey
????????{
????????????get
????????????{
????????????????return?HtmlTextWriterTag.Div;
???????????????//?uncomment?for?a?table
???????????????//?return?HtmlTextWriterTag.Table;
????????????}
????????}
????????protected?override?void?RenderContents(HtmlTextWriter?writer)
????????{
????????????int?prevListCount,?nextListCount,?startPage,?endPage;
????????????prevListCount?=?Math.Abs((m_displayedPages?-?1)?/?2);
????????????if?(m_SelectedPage?<=?prevListCount)?prevListCount?=?m_SelectedPage?-?1;
????????????nextListCount?=?m_displayedPages?-?prevListCount?-?1;
????????????if?(m_SelectedPage?+?nextListCount?>?m_Count)?nextListCount?=?m_Count?-?m_SelectedPage;
????????????startPage?=?m_SelectedPage?-?prevListCount;
????????????endPage?=?m_SelectedPage?+?nextListCount;
????????????//?uncomment?for?a?table
????????????//?writer.RenderBeginTag(HtmlTextWriterTag.Tr);
????????????if?(startPage?>?1)
????????????{
????????????????renderItem(writer,?"«?First",?1);
????????????}
????????????if?(SelectedPage?>?1)
????????????{
????????????????renderItem(writer,?"<?Prev",?SelectedPage?-?1);
????????????}
????????????for?(int?count?=?startPage;?count?<=?endPage;?count++)
????????????{
????????????????string?label;
????????????????if?(count?!=?endPage)
????????????????????label?=?count.ToString()?+?",";
????????????????else
????????????????????label?=?count.ToString();
????????????????if?(count?==?m_SelectedPage)
????????????????{
????????????????????renderItem(writer,?label,?0);
????????????????}
????????????????else
????????????????{
????????????????????renderItem(writer,?label,?count);
????????????????}
????????????}
????????????if?(SelectedPage?<?m_Count)
????????????{
????????????????renderItem(writer,?"Next?>",?SelectedPage?+?1);
????????????}
????????????if?(endPage?<?m_Count)
????????????{
????????????????renderItem(writer,?"Last?»",?m_Count);
????????????}
????????}
????????void?renderItem(HtmlTextWriter?writer,?string?text,?int?pageNum)
????????{
????????????writer.RenderBeginTag(HtmlTextWriterTag.Span);
????????????if?(pageNum!=0)
????????????{
????????????????writer.AddAttribute(HtmlTextWriterAttribute.Href,?Page.ClientScript.GetPostBackClientHyperlink(this,pageNum.ToString()));
????????????????writer.RenderBeginTag(HtmlTextWriterTag.A);
????????????}
????????????
????????????writer.Write(text);
????????????if?(pageNum!=0)
????????????{
????????????????writer.RenderEndTag();
????????????}
???????????
????????????writer.RenderEndTag();
????????}
????????private?static?readonly?object?EventSelectedPageChanged?=?null;
????????public?event?EventHandler?SelectedPageChanged
????????{
????????????add
????????????{
????????????????Events.AddHandler(EventSelectedPageChanged,value);
????????????}
????????????remove
????????????{
????????????????Events.RemoveHandler(EventSelectedPageChanged,?value);
????????????}
????????}
????????void?IPostBackEventHandler.RaisePostBackEvent(string?eventArgument)
????????{
????????????int?newPage;
????????????if?(int.TryParse(eventArgument,?out?newPage))
????????????{
????????????????this.SelectedPage?=?newPage;
????????????????OnSelectedPageChanged(EventArgs.Empty);
????????????}
????????}
????????protected?virtual?void?OnSelectedPageChanged(EventArgs?e)
????????{
????????????EventHandler?changehandler?=?(EventHandler)Events[EventSelectedPageChanged];
????????????if?(changehandler?!=?null)
????????????{
????????????????changehandler(this,?e);
????????????}
????????}
????}
}
存儲過程:
ALTER?PROCEDURE?PagedAnnouncementList?
(
????@pageNum?INT?=?1,
????@pageSize?INT?=?10
)
????
AS
????DECLARE?@rows?INT
????DECLARE?@keydate?DATETIME
????DECLARE?@keyid?INT
????DECLARE?@rowCount?FLOAT?/**//*?yes?we?need?a?float?for?the?math?*/
????
????IF?@pageNum?=?1
????????BEGIN
????????????SET?@keydate=?0
????????????SET?@keyid=0
????????END
????ELSE
????????BEGIN
????????????/**//*?get?the?values?for?the?date?and?row?*/
????????????SELECT?@rows?=?(@pageNum-1)?*?@pageSize
????????????SET?ROWCOUNT??@rows
????????????SELECT?@keydate=itemdate,?@keyid=id?FROM?announcements?ORDER?BY?itemdate?ASC,?id?ASC??
????????END
SELECT?@rowCount=COUNT(*)?FROM?announcements
SET??ROWCOUNT?@pageSize
????SELECT?id,?itemdate,?title,?description,?photo?FROM?Announcements?
????WHERE?(itemdate?>?@keydate?OR
????????????(itemdate?=?@keydate)?AND?(id?>?@keyid))
????ORDER?BY?itemdate?ASC,?id?ASC?
????RETURN?CEILING(@rowCount/@pageSize)
前臺頁面
<%@?Page?Language="C#"?MasterPageFile="~/Default.master"?Title="News?Articles"?%><%@?Register?TagPrefix="Club"?Namespace="ClubSite"?%>
<%@?Register?TagPrefix="Club"?TagName="LoginBanner"?Src="LoginBanner.ascx"?%>
<%@?Register?TagPrefix="Club"?TagName="ImageThumbnail"?Src="ImageThumbnail.ascx"?%>
<script?runat="server">
????protected?void?SqlDataSource1_Selected(object?sender,?System.Web.UI.WebControls.SqlDataSourceStatusEventArgs?e)
????{
????????int?pages;
????????pages?=?(int)e.Command.Parameters["@pageCount"].Value;
????????pn1.Count?=?pages;
????????Pn2.Count?=?pages;
????}
????protected?void?pn1_SelectedPageChanged(object?sender,?System.EventArgs?e)
????{
????????Pn2.SelectedPage?=?pn1.SelectedPage;
????}
????protected?void?Pn2_SelectedPageChanged(object?sender,?System.EventArgs?e)
????{
????????pn1.SelectedPage?=?Pn2.SelectedPage;
????}
????private?bool?IsAdmin;
????protected?void?Page_Load(object?sender,?System.EventArgs?e)
????{
????????IsAdmin?=?User.IsInRole("Administrators");
????????panel1.Visible?=?IsAdmin;
????}
</script>
<asp:Content?ID="Content1"?ContentPlaceHolderID="ContentPlaceHolder1"?runat="Server">
????<div?id="body">
????????<Club:LoginBanner?ID="LoginBanner1"?runat="server"?/>
????????<!--
????????
????????Left?column
????????
????????-->
????????<div?id="columnleft">
????????????<a?name="content_start"?id="content_start"></a>
????????????<div?class="leftblock">
????????????????<h2>
????????????????????News?Articles</h2>
????????????????<p>
????????????????????Lorem?ipsum?dolor?sit?amet,?consectetuer?adipiscing?elit,?sed?diam?nonummy?nibh
????????????????????euismod?tincidunt?ut?laoreet?dolore?magna?aliquam?erat?volutpat.?Ut?wisi?enim?ad
????????????????????minim?veniam,?quis?nostrud?exercitation?ulliam?corper?suscipit?lobortis?nisl?ut
????????????????????aliquip?ex?ea?commodo?consequat.?Duis?autem?veleum?iriure?dolor?in?hendrerit?in
????????????????????vulputate?velit?esse?molestie?consequat,?vel?willum?lunombro?dolore?eu?feugiat?nulla
????????????????????facilisis?at?vero?eros?et?accumsan?et?iusto?odio?dignissim?qui?blandit?praesent
????????????????????luptatum?zzril?delenit?augue?duis?dolore?te?feugait?nulla?facilisi.</p>
????????????</div>
????????</div>
????????<!--
????????
????????Right?column
????????
????????-->
????????<div?id="columnright">
????????????<div?class="rightblock">
????????????????<asp:SqlDataSource?ID="SqlDataSource1"?runat="server"?ConnectionString="<%$?ConnectionStrings:ClubSiteDB?%>"
????????????????????SelectCommand="PagedAnnouncementList"?SelectCommandType="StoredProcedure"?OnSelected="SqlDataSource1_Selected">
????????????????????<SelectParameters>
????????????????????????<asp:ControlParameter?Name="pageNum"?ControlID="pn1"?PropertyName="SelectedPage"?/>
????????????????????????<asp:Parameter?DefaultValue="10"?Name="pageSize"?Type="Int32"?/>
????????????????????????<asp:Parameter?Name="pageCount"?Direction="ReturnValue"?Type="Int32"?/>
????????????????????</SelectParameters>
????????????????</asp:SqlDataSource>
????????????????<asp:Panel?ID="panel1"?runat="server"?CssClass="actionbuttons">
????????????????????<Club:RolloverLink?ID="RemoveBtn"?runat="server"?Text="Add?new?Article"?NavigateURL="News_Edit.aspx?Action=New"?/>
????????????????</asp:Panel>
????????????????<div?class="dashedline">
????????????????</div>
????????????????<div?class="newscrumbs">
????????????????????Page:
????????????????????<Club:PageNumberer?ID="pn1"?runat="server"?CssClass="PageNumbers"?DisplayedPages="7"
????????????????????????OnSelectedPageChanged="pn1_SelectedPageChanged"?/>
????????????????</div>
????????????????<div?class="dashedline">
????????????????</div>
????????????????<!--?begin?news?item?-->
????????????????<asp:Repeater?ID="DataList1"?runat="server"?DataSourceID="SqlDataSource1">
????????????????????<ItemTemplate>
????????????????????????<div?class="listitem">
????????????????????????????<div?class="thumbnail">
????????????????????????????????<a?href='<%#?"News_View.aspx?Articleid="?+?Convert.ToString(?Eval("ID"))%>'>
????????????????????????????????????<Club:ImageThumbnail?ID="ImageThumbnail1"?runat="server"?PhotoID='<%#?Eval("photo")?%>'
????????????????????????????????????????NoPhotoImg="images/news.jpg"?/>
????????????????????????????????</a>
????????????????????????????</div>
????????????????????????????<asp:Panel?ID="panel2"?runat="server"?Visible='<%#IsAdmin?%>'>
????????????????????????????????<Club:RolloverLink?ID="EditBtn"?runat="server"?Text="Edit"?NavigateURL='<%#?"News_Edit.aspx?Action=Edit&ArticleID="?+?Convert.ToString(?Eval("ID"))?%>'?/>
????????????????????????????????<Club:RolloverLink?ID="RemoveBtn"?runat="server"?Text="Remove"?NavigateURL='<%#?"News_Edit.aspx?Action=Remove&ArticleID="?+?Convert.ToString(?Eval("ID"))?%>'?/>
????????????????????????????</asp:Panel>
????????????????????????????<h3>
????????????????????????????????<asp:Label?ID="itemdateLabel"?runat="server"?Text='<%#?Eval("itemdate","{0:d}")?%>'?/>
???????????????????????????????? ?<a?href='<%#?"news_view.aspx?articleid="?+?Convert.ToString(?Eval("ID"))%>'>
????????????????????????????????????<asp:Label?ID="titleLabel"?runat="server"?Text='<%#?Eval("title")?%>'?/>
????????????????????????????????</a>
????????????????????????????</h3>
????????????????????????????<p>
????????????????????????????????<asp:Label?ID="descriptionLabel"?runat="server"?Text='<%#?SharedRoutines.truncate((string)Eval("description"))?%>'?/>
????????????????????????????????<a?href='<%#?"news_view.aspx?articleid="?+?Convert.ToString(?Eval("ID"))%>'>read?more?»</a></p>
????????????????????????????<div?class="clearlist">
????????????????????????????</div>
????????????????????????</div>
????????????????????</ItemTemplate>
????????????????</asp:Repeater>
????????????????<div?class="dashedline">
????????????????</div>
????????????????<div?class="newscrumbs">
????????????????????Page:
????????????????????<Club:PageNumberer?ID="Pn2"?runat="server"?DisplayedPages="7"?CssClass="PageNumbers"
????????????????????????OnSelectedPageChanged="Pn2_SelectedPageChanged"?/>
????????????????</div>
????????????</div>
????????</div>
????????<div?class="clear2column">
????????</div>
????</div>
</asp:Content>
2。還有其他的就不列舉了。
?
轉載于:https://www.cnblogs.com/csuwhl/archive/2006/09/07/498116.html
總結
以上是生活随笔為你收集整理的Club Web Site-Customized web controls的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 品牌才是硬道理——一线、二线主板品牌集中
- 下一篇: ASP调用sql server 存储过程