请教一个关于gridview显示的问题 在信息查询的时候有两种查询条件,一是查询全部的信息,另一种是模糊查询,查询结果都是在gridview中显示。请问,在点击换页的时候(启动了gridview自带的换页功能),在pageindexchanging事件中如何判断gridview该绑定按哪种查询条件查询到的结果呢?谢谢大家啦! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 说到实质就是存储当前查询条件,说到存储那么有几个途径,比如session,比如cache比如application,比如url,比如cookie。每次点击查询按钮的时候就去更新下存储的东西,至于存储格式那就你自己来定咯。 在pageindexchanging事件中實現不了。gridview自带的换页功能的原理是先讀出所有的數據,再給你分頁。你數據源都定下來了,怎么可能在pageindexchanging中去改變?所有要在綁定數據源的時候就要給它下參數判斷。 可以把查询分为两个分支,设置一个flag来区分是查询全部的信息(flag=1)还是模糊查询(flag),点查询按钮时,把这个flag放到session里,检索出结果时,读取一下session里面的值,就知道是什麽查询了 这个好办:使用ViewState判断,现在protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) { if (ViewState["search"] == null) { DlBind(); } else { gvSearchBind(); } } }public void DlBind() { //这里绑定查询全部信息。 }public void gvSearchBind() { //这里绑定查询模糊信息。 }当你点击按钮查询模糊信息的时候,这样写:protected void Search_Click(object sender, EventArgs e) //点击查询 { ViewState["search"] = 1; gvSearchBind(); }搞定。 补充一下我上面那里,在PageIndexChanging这里这样写:protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; if (ViewState["search"] == null) { DlBind(); } else { gvSearchBind(); } }我就是这样用,完全没问题! 好用了 小女子 在此谢过各位了 尤其感谢wangxiaofeiwuqiao兄 对存储过程传参数不熟?那你就就要好好看一看相关的资料了,你这个问题用存储过程处理sql语句是不难的,你的两种查询无外乎是select语句的使用,如果能在where中再设置一个参数的话就可以控制查询的种类。例如你设一个@type作为传入存储过程的参数然后就是if(@type = 1) begin.....end.... if(@type = 2) begin.....end.... CSS新闻列表中的“点”的问题 Xml文件的可视化修改 200分!!!sql语句 兄弟们看下这是个什么问题啊? 土豆网的视频播放如何再.NET框架下做 问题没解决!另开帖子!希望慕白 gui0605(学问之美..)帮我再解决下!谢谢了! 访问自己机器的localhost出问题了。急急急急! 求文档管理和经验交流平台的开发 How?不用模板列控制Datagrid编辑框宽度! 使用SmtpMail为什么不能发出邮件?? 并发数问题 下载一个文件 数据不全
每次点击查询按钮的时候就去更新下存储的东西,至于存储格式那就你自己来定咯。
gridview自带的换页功能的原理是先讀出所有的數據,再給你分頁。
你數據源都定下來了,怎么可能在pageindexchanging中去改變?所有要在綁定數據源的時候就要給它下參數判斷。
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
if (ViewState["search"] == null)
{
DlBind();
}
else
{
gvSearchBind();
}
}
}public void DlBind()
{
//这里绑定查询全部信息。
}public void gvSearchBind()
{
//这里绑定查询模糊信息。
}当你点击按钮查询模糊信息的时候,这样写:
protected void Search_Click(object sender, EventArgs e) //点击查询
{
ViewState["search"] = 1;
gvSearchBind();
}搞定。
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
if (ViewState["search"] == null)
{
DlBind();
}
else
{
gvSearchBind();
}
}我就是这样用,完全没问题!
你的两种查询无外乎是select语句的使用,如果能在where中再设置一个参数的话就可以控制查询的种类。
例如你设一个@type作为传入存储过程的参数
然后就是if(@type = 1) begin.....end....
if(@type = 2) begin.....end....