Namespace datalist
''' <summary>
''' Summary description for WebForm1.
''' </summary>
Public Class WebForm1
Inherits System.Web.UI.Page
Protected DataList1 As System.Web.UI.WebControls.DataList
Protected TextBox1 As System.Web.UI.WebControls.TextBox
Protected TextBox2 As System.Web.UI.WebControls.TextBox
Protected LinkButton1 As System.Web.UI.WebControls.LinkButton
Protected LinkButton2 As System.Web.UI.WebControls.LinkButton
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If Not IsPostBack Then
TextBox1.Text = "0"
TextBox2.Text = "1"
Build_List()
End If
End Sub
Private Sub Build_List()
Try
Dim dsn As String = "ASPNETDBConnectionString1"
Dim ocon As New SqlConnection(dsn)
ocon.Open()
Dim strsql As String = "select * from Abonozer_Sertifica"
Dim oda As New SqlDataAdapter(strsql, ocon)
Dim ods As New DataSet()
Dim index As Integer = Integer.Parse(TextBox1.Text)
oda.Fill(ods, 4, 4, "contact")
DataList1.DataSource = ods.Tables("contact").DefaultView
DataList1.DataBind()
ocon.Close()
Catch ex As Exception
Response.Write(ex.Message + " " + ex.StackTrace)
End Try
End Sub
#Region "Web Form Designer generated code"
Protected Overloads Overrides Sub OnInit(ByVal e As EventArgs)
'
' CODEGEN: This call is required by the ASP.NET Web Form Designer.
'
InitializeComponent()
MyBase.OnInit(e)
End Sub
''' <summary>
''' Required method for Designer support - do not modify
''' the contents of this method with the code editor.
''' </summary>
Private Sub InitializeComponent()
AddHandler Me.LinkButton1.Click, AddressOf LinkButton1_Click
AddHandler Me.LinkButton2.Click, AddressOf LinkButton2_Click
AddHandler Me.Load, AddressOf Page_Load
End Sub
#End Region
Private Sub LinkButton1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim index As Integer = Integer.Parse(TextBox1.Text)
index -= 1
TextBox1.Text = index.ToString()
Build_List()
End Sub
Private Sub LinkButton2_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim index As Integer = Integer.Parse(TextBox1.Text)
index += 1
TextBox1.Text = index.ToString()
Build_List()
End Sub
End Class
End Namespacesayafada tüm ürünleri gösterebiliyorum sorun yok...sorun bu ürünlerin sayfada 10 ar 10 ar çıkması gerekiyor...diğerleri sayfalama şeklinde çıkması gerekiyor...aynı googledeki gibi...arama yaptığımız zaman altta sayfalar çıkıyor sayfa başına 10 adet link çıkıyor...yapmaya çalıştığım olay o....ama ne yaptımsa olmadı...ürünlerin tamamı aynı sayfada çıkıyor...yardımcı olabilecek arkadaş varsa ilgilenirse çok sevinirim...saygılar
datalist sayfalama
4
●2.546
- 04-09-2007, 14:58:06arkadaşlar vb den anlayan arkadaş varsa ve cevaplarsa çok senirim...tam 1 haftadır uğraşıyorum ama nedense datalistte sayfalama olayını bir türlü yapamadım...kullandığım kodlar aşağıda..
- 05-09-2007, 18:26:48veri tabanının tipini ve büyüklüğünü bilmiyorum. fakat 100.000 kayıt bulunan bir veritabanından dataset + datalist ile listelemek cpu yu aşırı kasar.
Kendi video sitemde aranan kelimeler (yaklaşık 150.000 record) için kullandığım bir class var. istersen bunu kullanabilirsin. cpu ve ram ide şişirmez.
classın bir kısmını anlayabileceğin şekilde basitleştirilmiş halini veriyorum. projene istediğin şekilde dahil edebilirsin. Örnek Asp.Net 2.0 + Mssql Server içindir.
Tablo yapısı
id | text | hit ------------------------------------------ int (P.U) | varchar(255) | int
Kod
Dim DbdenGelen As String Dim DbBag As SqlConnection Dim DbBagString As String = ConfigurationManager.ConnectionStrings("MsSql").ConnectionString DbBag = New SqlConnection(DbBagString) DbBag.Open() Dim DbKomut = New SqlDataAdapter("select id from arananlar", DbBag) Dim DS = New DataSet() DbKomut.Fill(DS) Dim ToplamKayit = DS.Tables(0).Rows.Count.ToString() DS = Nothing DbKomut.Dispose() DbKomut = Nothing Dim SayfaNo = Request.QueryString("sayfa") Dim intPage As String = SayfaNo If intPage = "" Or Not IsNumeric(intPage) Or intPage = "0" Then intPage = Int(1) Else intPage = Int(intPage) End If ' Burada kaçar kaçar listeleneceğini belirtiyorsun Dim intPageSize As Integer = Int(10) Dim intPageSizeA As Integer = intPageSizeA Session.LCID = "1055" Dim intPages As Integer If InStr(ToplamKayit / intPageSize, ",") = 0 Then intPages = Int(ToplamKayit / intPageSize) Else intPages = Int(ToplamKayit / intPageSize) + 1 End If If intPage > intPages Then intPage = intPages Dim intStart As Integer = intPage * intPageSize If intPage = intPages Then intPageSize = ToplamKayit - (intStart - intPageSize) End If If intStart = 0 Then intStart = IntPageSizeA DbKomut = New SqlCommand("select * from ( select top " & intPageSize & " * from (select top " & intStart & " * from arananlar order by id desc ) as newtbl order by id asc) as newtbl2 order by id desc", DbBag) Dim AlinanVeriL As SqlDataReader AlinanVeriL = DbKomut.ExecuteReader() While AlinanVeriL.Read DbdenGelen = DbdenGelen + AlinanVeriL.Item("text") End While AlinanVeriL.Close() DbKomut.Dispose() AlinanVeriL = Nothing DbKomut = Nothing If intPage > 1 Then DbdenGelen = DbdenGelen + "<a href=""arananlar.aspx?sayfa=" & intPage - 1 & """> < geri</a>" End If If intPage < intPages Then DbdenGelen = DbdenGelen + "<a href=""arananlar.aspx?sayfa=" & intPage + 1 & """> ileri > </a>" End If DbBag.Close() DbBag.Dispose() DbBag = Nothingmantığını görmen açısından kodu verdim. esasen kod c# dir, vb.net e çevirirken yazım yanlışım olmuş olabilir, umarım yardımcı olmuşumdur. - 05-09-2007, 21:07:42ilgine teşekkürler dodstum....veri tabanım pek büyük olmayacak...en fazla 1000 kayıtlık bir veri tabanı...bu nedenle dataset ve datalist kullanakta sakınca görmedim...bir yrede hata yapıyorum ama o kısmı hala bulamadım...page_load kısmına ne yazarsam yazayım oradakileri okumuyor sanki...sadece datalist i çıkarıyor karşıma...oradaki resimleri sıralıyor istediğim gibi 4 er li gruplar halinde...ama sayfalamayı yapmıyor...sadece datalisttekilerin tamamını çıkırıyor..işte bukısım beni deli ediyor...datalisti sayfalamıyor ....
- 19-01-2008, 02:41:59akyaz hocam kodların C# halini de eklermisin aynı sayfaya .tşk ederim.