Проблема CollectionPager с UpdatePanel - PullRequest
0 голосов
/ 24 августа 2011

У меня проблема с пейджером и ретранслятором.Когда я загружаю страницу, collectionpager работает нормально ... Но когда я нажимаю кнопку поиска и связываю новые данные, нажимая ссылку страницы 2, он запускает обработчик события page_load и возвращает все данные снова ... Примечание: всеэлементы управления находятся в панели обновления.

 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);}

Ответы [ 3 ]

1 голос
/ 26 августа 2011

код очень плохой, и вы должны полностью просмотреть все это. проблема заключается в том, что каждый раз, когда выполняется загрузка страницы, он снова инициализирует ваш запрос по умолчанию (тот, у которого нет фильтра), вы должны найти способ сохранить где-то последний запрос, выполненный при заказе / фильтрации ваших данных. В любом случае, в Интернете есть много примеров, показывающих, чего вы пытаетесь достичь

ниже только один из них

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

0 голосов
/ 20 июля 2015

попробуйте EnableViewState="false"

0 голосов
/ 01 июня 2012

Вы должны снова связать CollectionPager в поиске.

...