repeater listelemede sorun

Kodla Büyü
Mesajlar
1,193
asp c# bilen arkadaşlardan yardım istiyorum, repeater a çektiğim bilgileri listview de olduğu gibi sayfa sayfa gösterme yolu var mıdır? (var olduğunu düşünüyorum) varsa yolu nedir ya da kodu nedir? yardım eden olursa çok sevinirim!!!
 
hocam repeater ın böyle bir özelliği yok kendi kontrolünü yazman gerekiyor.

Kod:
Private Sub Page_Load(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.Load
    'Put user code to initialize the page here

    Dim myConnection As New _
      SqlConnection(ConfigurationSettings.AppSettings("connectionString"))
    Dim myDA As New SqlClient.SqlDataAdapter("Select * from dtsDefect", _
                                                             myConnection)
    myDA.Fill(ds, "t1")
    pageds.DataSource = ds.Tables("t1").DefaultView
    pageds.AllowPaging = True
    pageds.PageSize = 4
    Dim curpage As Integer

    If Not IsNothing(Request.QueryString("Page")) Then
        curpage = Convert.ToInt32(Request.QueryString("Page"))
    Else
        curpage = 1
    End If

    pageds.CurrentPageIndex = curpage - 1
    lblCurrpage.Text = "Page: " + curpage.ToString()

    If Not pageds.IsFirstPage Then
        lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + _
                                       "?Page=" + CStr(curpage - 1)
    End If

    If Not pageds.IsLastPage Then
        lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + _
                                       "?Page=" + CStr(curpage + 1)
    End If

    Repeater1.DataSource = pageds
    Repeater1.DataBind()
End Sub
 
ben bu kodu ziyaretçi defteri için istiyorum hocam... sanırım daha anlaşılır olmuşumdur. repeater ın böyle bi özlliği olmadığını biliyorum ama gönderdiğiniz kodlar uymuyor hiç bişeye!
 
var ama kod ile yapman gerekiyor... öyle bir iki tık ile olmuyor... istersen kodları eklerim... ama bir 45 dk sonra
 
refleto' Alıntı:
var ama kod ile yapman gerekiyor... öyle bir iki tık ile olmuyor... istersen kodları eklerim... ama bir 45 dk sonra


çok ii olur hocam, asp de yeniyim, bu listeleme için nasıl bir kod yazmam gerek bilmiyorum, yardımcı olursanzı çok sevinirim...
 
Kod:
<asp:Repeater ID="Repeater1" runat="server" 
        onitemdatabound="Repeater1_ItemDataBound" 
        onitemcommand="Repeater1_ItemCommand">
    <ItemTemplate>burayı sen yazacaksın...                     </ItemTemplate>
    <SeparatorTemplate><hr /></SeparatorTemplate>
    </asp:Repeater>
    <p style="text-align:center">
        <asp:Repeater ID="Repeater2" runat="server" 
            onitemcommand="Repeater2_ItemCommand">
        <ItemTemplate> <asp:LinkButton ID="btnPage" CommandName="Page" Enabled='<%# Eval("active") %>' CommandArgument='<%# Eval("sayfa") %>' Runat="server"><%# Eval("sayfa") %></asp:LinkButton></ItemTemplate>
        </asp:Repeater>
    </p>
Kod:
private int eleman_sayisi
    {
      get
        {
            if (ViewState["eleman_sayisi"] == null)
            {
                return 0;
            }
            else
            {
                return (int)ViewState["eleman_sayisi"];
            }
        }
        set
        {
            if (ViewState["eleman_sayisi"] == null)
            {
                ViewState.Add("eleman_sayisi", value);
            }
            else
            {
                ViewState["eleman_sayisi"] = value;
            }
        }
    }
    private int active_sayfa
    {
        get
        {
            if (ViewState["active_sayfa"] == null)
            {
                return 0;
            }
            else
            {
                return (int)ViewState["active_sayfa"];
            }
        }
        set
        {
            if (ViewState["active_sayfa"] == null)
            {
                ViewState.Add("active_sayfa", value);
            }
            else
            {
                ViewState["active_sayfa"] = value;
            }
        }
    }
 protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            LoadData();
        }        
    }
private void LoadData()
   {
      //Bir datatable veri çektiğini düşünüyorum... DT olsun burayı sen yazacan
      PagedDataSource pgitems = new PagedDataSource();
      System.Data.DataView dv = new System.Data.DataView(DT);
      pgitems.DataSource = dv;
      pgitems.AllowPaging = true;
      pgitems.PageSize = eleman_sayisi; // sayfadaki eleman sayısını belirleyecek sayı
      pgitems.CurrentPageIndex = active_sayfa; // active sayfa kaıncı sayfada
      
      if (pgitems.PageCount > 1)
      {
          Repeater2.Visible = true;
          Repeater2.DataSource = sayfa(pgitems.PageCount);
          Repeater2.DataBind();
      }
      else
      {
          Repeater2.Visible = false;
          Repeater2.DataSource = sayfa(pgitems.PageCount);
          Repeater2.DataBind();
      }
      Repeater1.DataSource = pgitems;
      Repeater1.DataBind();
  
    }

    private System.Data.DataTable sayfa(int sayi) //bura fix sayfa sayılarını gösterecek... bu ara bir repeater daha olacak şu 123456 yazacak ya o
    {
        System.Data.DataTable sonuc = new System.Data.DataTable();
        sonuc.Columns.Add("sayfa", Type.GetType("System.Int16"));
        sonuc.Columns.Add("active", Type.GetType("System.Boolean"));
        for (int i = 0; i <= sayi - 1; i++)
        {
            if (i == active_sayfa)
            {
                System.Data.DataRow oRow = sonuc.NewRow();
                oRow[0] = i + 1;
                oRow[1] = false;
                sonuc.Rows.Add(oRow);
            }
            else
            {
                System.Data.DataRow oRow = sonuc.NewRow();
                oRow[0] = i + 1;
                oRow[1] = true;
                sonuc.Rows.Add(oRow);
            }
        }
        return sonuc;
    }
    protected void Repeater2_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        active_sayfa = Convert.ToInt32(e.CommandArgument) - 1;
        LoadData();
    }
 
BBNET
Geri
Üst