要我记住以前回答过的问题好像不太可能吧确认你的初始databinding是在 if (!IsPostBack) { //初始databinding }里进行的或确认你的显示详细内容的编码不改变databinding,或把你的编码贴出来
我在页面的page_load中: Response.Write("<script>alert('"+Tbpage1.CurrentPageIndex+"')</script>"); 总是比在控件中的值慢一步,请问是怎么回事?可以实现同步么? 控件中: public int CurrentPageIndex { get { if (ViewState["CurrentPageIndex"] == null) return 1; return (int)ViewState["CurrentPageIndex"]; } set { ViewState["CurrentPageIndex"] = value; } } private void Gopageclicked(Object sender, EventArgs e) { LinkButton lb = (LinkButton)sender; CurrentPageIndex=System.Convert.ToInt16(lb.ID.Substring(6)); HttpContext.Current.Response.Write("<script>alert('"+CurrentPageIndex+"')</script>"); }
because you change it in Gopageclicked() and it is executed after Page_load! try to do it in Page_PreRender, but don't use Response.Write, use Page's RegisterStartupScript
>>>Page_PreRender不是在Page_load之前么,note, it is PreRender, Page_PreRender runs after all the click events, so you will get the right value after Gopageclicked is called
what is PreLoad? 2.0??for 1.*, see the following documentation for control's life cycle:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconControlExecutionLifecycle.asp
if (!IsPostBack)
{
//初始databinding
}里进行的或确认你的显示详细内容的编码不改变databinding,或把你的编码贴出来
Response.Write("<script>alert('"+Tbpage1.CurrentPageIndex+"')</script>");
总是比在控件中的值慢一步,请问是怎么回事?可以实现同步么?
控件中:
public int CurrentPageIndex
{
get
{
if (ViewState["CurrentPageIndex"] == null)
return 1;
return (int)ViewState["CurrentPageIndex"];
}
set
{
ViewState["CurrentPageIndex"] = value;
}
}
private void Gopageclicked(Object sender, EventArgs e)
{
LinkButton lb = (LinkButton)sender;
CurrentPageIndex=System.Convert.ToInt16(lb.ID.Substring(6));
HttpContext.Current.Response.Write("<script>alert('"+CurrentPageIndex+"')</script>");
}
如下:this.PreRender+=new System.EventHandler(this.Page_Preload);
private void Page_PreLoad(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
nstartcount=Tbpage1.nStartcount;
Page.RegisterStartupScript("tt","<script>alert('"+nstartcount+"')</script>");
}
}
在控件中,以下代码则弹出正确的值,请问是怎么回事?
protected override void OnPreRender(System.EventArgs e)
{
nStartcount=(CurrentPageNo-1)*PageSize;
HttpContext.Current.Response.Write("<script>alert('"+nStartcount+"')</script>");
}
private void Page_PreLoad(object sender, System.EventArgs e)
{
if(Page.IsPostBack)
{
nstartcount=Tbpage1.nStartcount;
Page.RegisterStartupScript("tt","<script>alert('"+nstartcount+"')</script>");
}
}
我看了你给的网页,控件的OnPreRender中是不是不应该做赋值操作啊!