2011-08-24 35 views
-2

我有一個收集器和中繼器的問題。當我加載頁面時,collectionpager工作正常..但是,當我點擊搜索按鈕並綁定新數據時,點擊頁面2鏈接,它將觸發page_load事件處理程序並將所有數據重新帶回...注意:所有控件位於UpdatePanel中。CollectionPager問題與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_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 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);} 
+0

你研究過Massimiliano Peluso的解決方案嗎? –

+0

不,它沒有工作... – mekar10

回答

1

該代碼是非常糟糕的,你應該完全審查所有。 這個問題是每次執行頁面加載時,它會再次初始化您查詢的默認值(不帶過濾器的那個),您應該找到一種方法來存儲最後一個查詢在執行/過濾數據時執行的地方。 但無論如何,是許多實例在網絡上顯示你正在努力實現

的下面是什麼只是一個他們

http://www.codeproject.com/KB/webforms/ExtendedRepeater.aspx

0

,你必須重新綁定CollectionPager您的搜索。

0

試試這個EnableViewState="false"