If PH.EnableViewState = True Then Dim pageList As New ArrayList pageList = SgetVisiblePage(lbl_xiangmubianhao.Text) initialComponent(pageList) loadprojectname() End If 我这个是动态生成控件的代码,ph是容器,对你可能有些帮助
If PH.EnableViewState = True Then Dim pageList As New ArrayList pageList = SgetVisiblePage(lbl_xiangmubianhao.Text) initialComponent(pageList) loadprojectname() End If 我这个是动态生成控件的代码,ph是容器,对你可能有些帮助
给你在线写个控件(仅示例)public class DataGridPageNav inherits webcontrolprivate withevent GoPrev,GoNext as buttonProtected Overrides Sub CreateChildControls() goprev=new button goprev.text="向前" gonext=new button gonext.text="向后" End Subpublic event GoPrevClicked public event GoNextClickedPrivate Sub GoPrev_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles GoPrev.Click raiseevent GoPrevClicked end subPrivate Sub GoNext_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles GoNext.Click raiseevent GoNextClicked end subend class
的datagrid,datagrid下面就是我的控件,负责显示"上一页下一页"的内容,当我点击控件上的翻页链接的时候,页面被重新加载,那几个查询控件的内容又回复到初始状态,而查询的结果就是根据查询控件生成的,结果datagird显示的页数虽然对,但内容却总是默认的查询结果.我的page_oad里只有一个方法,就是根据查询控件的值,生成一个datagird显示,和我的分页显示.问题是当点击翻页链接"href=xxx.aspx?page=n"(假设当前页名为xxx.aspx),页面就被初始化了,何让我的那些查询控件,(就是几个WebControls,2个dropdownlist,1个日历控件)保持原来的状态?
Dim pageList As New ArrayList
pageList = SgetVisiblePage(lbl_xiangmubianhao.Text)
initialComponent(pageList)
loadprojectname() End If
我这个是动态生成控件的代码,ph是容器,对你可能有些帮助
Dim pageList As New ArrayList
pageList = SgetVisiblePage(lbl_xiangmubianhao.Text)
initialComponent(pageList)
loadprojectname() End If
我这个是动态生成控件的代码,ph是容器,对你可能有些帮助
--------------------------------
这再明白不过了。早期“翻页”程序把这种方法当作标准。这种翻页,其实是重新开始一个新页面,只不过把Datagrid的初始化参数传过去,其它页面上控件上的当前是什么参数完全没有管。更明确一点,如果datagrid有排序表达式(通常早AllowSort=true的时候点击标题),那么所谓的“翻页”也不能保持这个表达式。仅datagrid就有几十个需要保存在ViewState中的信息,你那种“翻页”究竟保持了几个?只有一个!所以,我曾经在帖子里把这种datagrid叫做“恶俗”的设计,目的就是提醒大家一定要对最基本的交互性设计知识有个概念,编程时凭第一反应就知道什么设计可行什么不可行。你应该对这类型的页面刷新方法深恶痛绝,之后就会认真地使用ViewState机制。
{
document.all..hidPageIndex.value = iPage;
document.all.btnPager.click();
}
inherits webcontrolprivate withevent GoPrev,GoNext as buttonProtected Overrides Sub CreateChildControls()
goprev=new button
goprev.text="向前"
gonext=new button
gonext.text="向后"
End Subpublic event GoPrevClicked
public event GoNextClickedPrivate Sub GoPrev_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Handles GoPrev.Click
raiseevent GoPrevClicked
end subPrivate Sub GoNext_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Handles GoNext.Click
raiseevent GoNextClicked
end subend class
goprev=new button
me.controls.add goprev
goprev.text="向前"
gonext=new button
me.controls.add gonext
gonext.text="向后"
End Sub
改成响应linkbutton的点击事件,经过一天一夜的奋斗,也因此做成了一个不错的比较通用的翻页控件,呵呵,调用时候方便得很.我的翻页控件是跟数据无关的,调用的时候只需传一个总记录数(也可自定义页数pagesize),再加上一个处理翻页事件的方法就ok了.但我稍嫌美中不足的是它是个用户控件,源码都可以看到,我想改成一个web服务器控件,就是生成一个dll的那种,可是让我迷惑的是,在web项目下编写web自定义控件没有可视化界面,我的的那些linkbutton和label都不知道怎么摆上去,继续请教各位
专门研究asp.net的实用技巧、经验,服务器控件等 。