如题 有什么解决办法呢?
解决方案 »
- c#串口通信假死,求助
- 求教获取已知句柄的Internet Explorer_Server内容
- Lucene搜索
- 通过另一线程绑定DataGridview 无法显示纵滚动条
- sql语句的问题,很奇怪,大家帮忙看看!!
- 编程时碰到奇怪问题,运行时有时正确,有时错误
- qq,pplive网络电视这些软件本质上是不是等同于IE?
- 新手问:dataGrid绑定表后刷新记录的问题
- 关于NCTAUDIOEDITOR2Lib。己添加到vs2010项目中的工具箱,win7下一拖就要关闭程序
- VB6程序员看由哪本书开始学C#好?
- 如何将文本文件里的内容插入数据表中
- 无法将从数据库中取出的数据显示在ListView中
public string TEST
{
get {return test;}
set {test= value;}
}
是从 System.Web.UI.Control 继承的this.ViewState
这才是我第二次发的帖 结帖为0有什么出奇呢?我不信你一进来csdn就有结贴率
public int Count
{
get
{
if (ViewState["count"] != null)
return (int)ViewState["count"];
else
return 0;
}
set
{
ViewState["count"] = value;
}
}
是不是这样啊?
我在后台实例化pager然后赋值
调试发现在pager类赋值后回到后台viewstate数据就没了
private void BindRepeater()
{
pager pager = new pager();
pds = new PagedDataSource();
pds.AllowPaging = true;
pds.PageSize = 20;
pager.PageSize = pds.PageSize; using (DataTable dt = (man.getTip(Convert.ToInt32(ViewState["tipsId"]))).Tables[0])
{
DataView dv = dt.DefaultView;
pds.DataSource = dv;
pager.Count = pds.Count;
if (Request.QueryString["page"] != null)
{
int tPage = Convert.ToInt32(Request.QueryString["page"]);
if (pds.PageCount >= tPage)
{
pds.CurrentPageIndex = tPage - 1;
ViewState["currentPageIndex"] = pds.CurrentPageIndex;
pds.CurrentPageIndex = pds.CurrentPageIndex;
}
}
else
{
pds.CurrentPageIndex = 0;
ViewState["currentPageIndex"] = pds.CurrentPageIndex;
pds.CurrentPageIndex = pds.CurrentPageIndex;
}
} ViewState["pageCount"] = pds.PageCount;
this.MessageList.DataSource = pds;
this.MessageList.DataBind();
}
pager类代码:
public class pager: System.Web.UI.Control
{
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
writer.WriteLine(Count);
} public int Count
{
get
{
if (ViewState["count"] != null)
return (int)ViewState["count"];
else
return 0;
}
set
{
ViewState["count"] = value;
}
} public int CurrentPageIndex
{
get
{
if (ViewState[ClientID + "CurrentPageIndex"] != null)
return (int)ViewState[ClientID + "CurrentPageIndex"];
else
return 0;
}
set
{
ViewState[ClientID + "CurrentPageIndex"] = value;
}
} public int PageSize
{
get
{
if (ViewState[ClientID + "PageSize"] != null)
return (int)ViewState[ClientID + "PageSize"];
else
return 20;
}
set
{
ViewState[ClientID + "PageSize"] = value;
}
} public int PageCount
{
get
{
return (int)Math.Ceiling((double)Count / PageSize);
}
} }
Count值最后为0 调试时显示为20
<kody:Pager ID="p1" runat="server" ..... />
这种代码,在属性中声明与其它控件关系。使用自定义控件最好支持别人在设计器上声明方式来设计,而不是写 BindRepeater 这样的代码。这样的代码在你编程到中等水平时喜欢强调什么都用代码解决,但是越过那个阶段再进阶就会反而追求像初学者那样用鼠标拖一拖就使用好自定义控件了(但是此时你可以通过封装起来自定义控件让别人轻松共享你的成果)。