ServerContrl1.cs的代码using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;namespace ServerControl1
{
[DefaultProperty("CurrentPage")]
[ToolboxData("<{0}:ServerControl1 runat=server></{0}:ServerControl1>")]
public class ServerControl1 : WebControl, IPostBackEventHandler
{
#region 当前页码
[Description("当前选择页码")]
[Bindable(true)]
[Category("Appearance")]
[DefaultValue(1)]
public int CurrentPage
{
get
{
String ss = Convert.ToString(ViewState["CurrentPage"]);
int nn = 0;
int.TryParse(ss, out nn);
return (nn <= 0) ? 1 : nn;
}
set
{
if (value <= 0)
{
ViewState["CurrentPage"] = 1;
}
else
{
ViewState["CurrentPage"] = value;
}
}
}
#endregion public delegate void PageChangeEventHandler(object sender, EventArgs e);
public event PageChangeEventHandler ChangePageClick;
public void RaisePostBackEvent(string eventArgument)
{
int PageIndex = int.Parse(eventArgument);
this.CurrentPage = PageIndex;
OnPageChangeClick(new EventArgs());
} protected virtual void OnPageChangeClick(EventArgs e)
{
if (ChangePageClick != null)
{
ChangePageClick(this, e);
}
} protected override void RenderContents(HtmlTextWriter output)
{
StringBuilder Str = new StringBuilder();
Str.Append("当前:"+CurrentPage.ToString());
Str.Append(" <a id=\"" + this.UniqueID + "\" title='' href=\"javascript:" + Page.GetPostBackEventReference(this, (CurrentPage - 1).ToString()) + "\">上一页</a>");
Str.Append(" <a id=\"" + this.UniqueID + "\" title='' href=\"javascript:" + Page.GetPostBackEventReference(this, (CurrentPage + 1).ToString()) + "\">下一页</a>");
output.Write(Str.ToString());
}
}
}
调用页default.aspx 的 <%=ServerControl11.CurrentPage%>
<br />
<cc1:ServerControl1 ID="ServerControl11" runat="server" />这个显示是对的。即<%=ServerControl11.CurrentPage%>和当前的页面值相同
而 default.cs 中 Response.Write(this.ServerControl11.CurrentPage); 却比当前的页面值晚一步。
请教大侠如何解决才能在 default.cs中同步显示
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;namespace ServerControl1
{
[DefaultProperty("CurrentPage")]
[ToolboxData("<{0}:ServerControl1 runat=server></{0}:ServerControl1>")]
public class ServerControl1 : WebControl, IPostBackEventHandler
{
#region 当前页码
[Description("当前选择页码")]
[Bindable(true)]
[Category("Appearance")]
[DefaultValue(1)]
public int CurrentPage
{
get
{
String ss = Convert.ToString(ViewState["CurrentPage"]);
int nn = 0;
int.TryParse(ss, out nn);
return (nn <= 0) ? 1 : nn;
}
set
{
if (value <= 0)
{
ViewState["CurrentPage"] = 1;
}
else
{
ViewState["CurrentPage"] = value;
}
}
}
#endregion public delegate void PageChangeEventHandler(object sender, EventArgs e);
public event PageChangeEventHandler ChangePageClick;
public void RaisePostBackEvent(string eventArgument)
{
int PageIndex = int.Parse(eventArgument);
this.CurrentPage = PageIndex;
OnPageChangeClick(new EventArgs());
} protected virtual void OnPageChangeClick(EventArgs e)
{
if (ChangePageClick != null)
{
ChangePageClick(this, e);
}
} protected override void RenderContents(HtmlTextWriter output)
{
StringBuilder Str = new StringBuilder();
Str.Append("当前:"+CurrentPage.ToString());
Str.Append(" <a id=\"" + this.UniqueID + "\" title='' href=\"javascript:" + Page.GetPostBackEventReference(this, (CurrentPage - 1).ToString()) + "\">上一页</a>");
Str.Append(" <a id=\"" + this.UniqueID + "\" title='' href=\"javascript:" + Page.GetPostBackEventReference(this, (CurrentPage + 1).ToString()) + "\">下一页</a>");
output.Write(Str.ToString());
}
}
}
调用页default.aspx 的 <%=ServerControl11.CurrentPage%>
<br />
<cc1:ServerControl1 ID="ServerControl11" runat="server" />这个显示是对的。即<%=ServerControl11.CurrentPage%>和当前的页面值相同
而 default.cs 中 Response.Write(this.ServerControl11.CurrentPage); 却比当前的页面值晚一步。
请教大侠如何解决才能在 default.cs中同步显示
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货