PDA

View Full Version : دکمه های Pager فعال نیستند



archi
شنبه 27 تیر 1383, 00:09 صبح
من وقتی از داخل کد (و نه Property Biulder) دیتا سورس گرید رو مشخص می کنم و خاصیتهای AllowPaging و Alowcustompaging رو true می کنم و....
هنوز لینکهای دکمه های >و << فعال نمیشند!
ممنون

archi
شنبه 27 تیر 1383, 00:12 صبح
ضمنا میدونم که باید برای event اون یعنی pageIndexChange دستور مناسب بنویسم ولی مشکلم اینه که اصلا دکمه های Pager حالت لینک ندارند
:roll:

h_rezaei
شنبه 27 تیر 1383, 08:56 صبح
PageCount چه مقداری رو نشون میده؟ اگه 1 باشه Pager فعال نیست (احتمالا تعداد رکوردات از PageSize کمتره )

archi
شنبه 27 تیر 1383, 14:54 عصر
بله 1 رو نشون میده ولی رکورد هام زیادند (تو همون گرید بدون Pagingحدود 30 تا هستند و pagesiz رو 10گذاشتم)
کمک کنید هنوز مشکلم ح نشده :cry:

archi
یک شنبه 28 تیر 1383, 20:07 عصر
کسی نمی دونه چی کار کنم؟ کسی کدی داره که datareader رو به datagrid وصل کرده باشه و paging هم داشته باشه؟
ممنون

sanaz_amiri
دوشنبه 29 تیر 1383, 20:22 عصر
سلام
Alowcustompaging =false
بذار باشه


Sub bind()
Dim dset As DataSet = New DataSet
Dim dadapter As SqlDataAdapter = New SqlDataAdapter("select * from tblsample", conn)
dadapter.Fill(dset)
DataGrid1.DataSource = dset.Tables(0)

DataGrid1.DataBind()



End Sub
Sub datagrid1_Paging(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEvent Args) Handles DataGrid1.PageIndexChanged

DataGrid1.CurrentPageIndex = e.NewPageIndex
bind()


End Sub





<asp:datagrid id="DataGrid1" runat="server" Font-Size="X-Small" Font-Names="Tahoma" BorderWidth="1px"
Width="534px" BorderColor="Silver" BackColor="#F3F6F9" AutoGenerateColumns="False" AllowPaging="True" OnPageIndexChanged="datagrid1_Paging" ShowHeader="False">
<AlternatingItemStyle Wrap="False"></AlternatingItemStyle>



من به شکل بالا عمل میکنم ..که روش معمول در asp.net است مشکلی هم تا حالا که نداشته


یه مطلبی
من فکر میکنم که مشکل شما از اینجاست
OnPageIndexChanged="datagrid1_Paging
مطمینید که این قسمت رو در کدهای client side تون دارید ؟؟


اینم با data reader



Sub bindgrid(ByVal strSQL As String)
Dim dreader As SqlDataReader

conn.Open()
Dim oledbcommand1 As New SqlCommand(Session("sql"), conn)
dreader = oledbcommand1.ExecuteReader()
grid.DataSource = dreader
grid.DataBind()
dreader.Close()
conn.Close()
End Sub

archi
شنبه 07 شهریور 1383, 07:18 صبح
خوب منم همین کار رو می کنم ولی دکمه ها فعال نمیشند.
استاد نصیری کمک کنید

Vahid_Nasiri
شنبه 07 شهریور 1383, 18:14 عصر
datareader از خاصیت paging‌ پشتیبانی نمی کند (چون این دیتاسورس خاصیت icollection ندارد).
(البته برای حل این مشکل راه حل های ابتکاری هم وجود دارد ولی بهتر است از همان روش متداول دیتاست و دیتاویو استفاده کنید.)

jannati
شنبه 04 مهر 1383, 08:45 صبح
خانم امیری
من وقتی allowcustompaginرا falseمیکنم با این خطا روبرو میشم:


Allow custon pagin must be true and virtualItem count must be set for Datagrid with Id Datagrid1when alloCustomPagin set to true and selected datasource dosenot implement Icollection

برای رفع خطا از کدهای زیر هم در بایندینگ دیتاگرید استفاده کردم.ولی حل نشد:


SqlDataReader reader=comm.ExecuteReader ();
if(!reader.Read())
{
DataGrid1.VirtualItemCount =0;
}
else
{
DataGrid1.VirtualItemCount=reader.GetInt32(0);
DataGrid1.PageSize =20;

}

اگر ممکنه منو راهنمایی کنید :?

jannati
شنبه 04 مهر 1383, 13:39 عصر
دوستان عزیز سلام
مشکل من حل شد.راه حلش هم این بود که به جای اینکه اطلاعاتم را با datareaderبه دیتاگرید بایند کنم با datasetاینکارو کردم . (:D)

Vahid_Nasiri
شنبه 04 مهر 1383, 18:32 عصر
:evil2:

hosseinab
سه شنبه 07 مهر 1383, 15:50 عصر
بدون دیتا ست هم می شود
Private Sub count()
Dim dr As Data.SqlClient.SqlDataReader
Dim ConnectionString As String = "server=tcnopard-xqc6xy; uid=sa; pwd=123; database=address; Connect Timeout=30"
Dim cnn As New Data.SqlClient.SqlConnection(ConnectionString)
Dim cmd As New Data.SqlClient.SqlCommand
cnn.Open()
cmd.Connection = cnn
cmd.CommandText = "select count(*) from linkest"
Me.DataGrid1.AllowCustomPaging = True
Me.DataGrid1.VirtualItemCount = cmd.ExecuteScalar
cnn.Close()
End Sub