asp.net – 使用UpdatePanel的CollectionPager问题
发布时间:2020-12-16 00:10:32 所属栏目:asp.Net 来源:网络整理
导读:我对collectionpager和repeater有问题.当我加载页面时,collectionpager工作正常..但是当我单击搜索按钮并绑定新数据时,单击第2页链接,它将触发page_load事件处理程序并将所有数据重新带回…注意:全部控件位于UpdatePanel中. protected void Page_Load(objec
我对collectionpager和repeater有问题.当我加载页面时,collectionpager工作正常..但是当我单击搜索按钮并绑定新数据时,单击第2页链接,它将触发page_load事件处理程序并将所有数据重新带回…注意:全部控件位于UpdatePanel中.
protected void Page_Load(object sender,EventArgs e){ if (!IsPostBack) { kayit_getir("SELECT Tbl_Icerikler.ID,Tbl_Icerikler.url,Tbl_Icerikler.durum,Tbl_Icerikler.baslik,Tbl_Icerikler.gunc_tarihi,Tbl_Icerikler.kayit_tarihi,Tbl_Icerikler.sira,Tbl_Kategoriler.kategori_adi FROM Tbl_Icerikler,Tbl_Kategoriler where Tbl_Kategoriler.ID=Tbl_Icerikler.kategori_id ORDER BY Tbl_Icerikler.ID DESC,Tbl_Icerikler.sira ASC"); }} public void kayit_getir(string SQL){ SqlConnection baglanti = new SqlConnection(f.baglan()); baglanti.Open(); SqlCommand komut = new SqlCommand(SQL,baglanti); SqlDataAdapter da = new SqlDataAdapter(komut); DataTable dt = new DataTable(); da.Fill(dt); if (dt.Rows.Count > 0) { CollectionPager1.DataSource = dt.DefaultView; CollectionPager1.BindToControl = Liste; Liste.DataSource = CollectionPager1.DataSourcePaged; } else { kayit_yok.Text = "<br /><span class='message information'>Kay?t bulunamad?.</span>"; } da.Dispose(); baglanti.Close(); CollectionPager1.DataBind(); Liste.DataBind();} protected void search_Click(object sender,EventArgs e){ string adi = f.temizle(baslik.Text); string durum = Durum.SelectedValue; string kayit_bas_t = kayit_bas_tarih.Text; string kayit_bit_t = kayit_bit_tarih.Text; string kategori = kategori_adi.SelectedValue; string SQL = "SELECT Tbl_Icerikler.ID,Tbl_Kategoriler where Tbl_Kategoriler.ID=Tbl_Icerikler.kategori_id and"; if (adi != "") { SQL = SQL + " Tbl_Icerikler.baslik LIKE '%" + adi + "%' and"; } if (kategori != "") { SQL = SQL + " Tbl_Icerikler.kategori_id=" + kategori + " and"; } if (durum != "") { SQL = SQL + " Tbl_Icerikler.durum='" + durum + "' and"; } if (kayit_bas_t != "") { SQL = SQL + " (Tbl_Icerikler.kayit_tarihi>'" + kayit_bas_t + "') and"; } if (kayit_bit_t != "") { SQL = SQL + " (Tbl_Icerikler.kayit_tarihi<'" + kayit_bit_t + "') and"; } SQL = SQL.Remove(SQL.Length - 3,3); SQL = SQL + " ORDER BY sira ASC,ID DESC"; try { kayit_getir(SQL); } catch { } Recursive(0,0);} 解决方法
代码非常糟糕,您应该完全检查所有内容.
问题是每次执行页面加载时它再次初始化您查询默认值(没有过滤器的那个)您应该找到一种方法来存储在您订购/过滤数据时最后一个查询已执行的某个地方. 无论如何,网上有很多例子显示你想要实现的目标 以下只是其中之一 http://www.codeproject.com/KB/webforms/ExtendedRepeater.aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 使用Asp.Net Identity 2在AspNetUserClaims中存储用户信息有
- asp.net – 如何在单击“赞”按钮时在新选项卡中打开Facebo
- asp.net – 如何为可自定义的应用程序设置数据模型
- asp-classic – ASP/VBScript – Int()vs CInt()
- asp.net – 如何在iTextSharp中显示水平线
- 如何在asp.net上的ButtonClick上使用Javascript隐藏GridVie
- asp.net-mvc-3 – Microsoft AntiXSS替代
- asp.net – 城堡windsor控制器工厂和存储库无法解决
- asp.net-mvc – 我的ASP.NET MVC控制器应该如何识别存储库
- asp.net – 根据角色重定向到其他页面