الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استخدام session في datagrid

مغلق
بدأه عماد خلف في 8 مايو 2007 · 7 رد · 724 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا استعمل طريقة في عمل ال datagrid ولكن لا اعلم مدى صحتها

وهي بالاعتماد على session للاحتفاظ بالبيانات

لكي يجري عليها عمليات sorting و ال paging

مثل الكود التالي

 Dim str As String = "select * from akhbar Order by kbrNum DESC"
            Dim dadapter As New SqlDataAdapter(str, connection)
            dadapter.Fill(dset)
            DG.DataSource = dset
            DG.DataBind()

            If DG.Items.Count < 1 Then
                DG.Visible = False
            Else
                DG.Visible = True
            End If
            Session("ds") = dset

اي انني قمت بحفظ dataset الناتجة وتخزينها في session

وذلك لكي استطيع ان اعمل paging مستعينا بال session لاعتقادي انها توفر الوقت بدلا من العودة مرة اخرى لعمل العمليات كلها (هل هذا صحيح )

Private Sub DG_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles DG.PageIndexChanged
        dset = Session("ds")
        DG.DataSource = dset
        DG.CurrentPageIndex = e.NewPageIndex
        DG.DataBind()
    End Sub

ولكن المشكلة هي انني عند التنقل بين الصفحات لفترة (يعني صفحات ال datagrid ) ينتج عندي خطأ

لا اعلم لماذا ؟؟؟ قد يكون انتهت مدة ال session ؟؟؟

قد أكون اتعبتكم معي ولكن انا مشوش بالنسبة لموضوع ال datagrid وسألخص الموضوع

ما افضل طريقة لعمل datagrid وال paging و ال sorting ؟؟؟

كيف استطيع ان اجعل ال session في ال webconfig ليس له مدة للا نتهاء اي لا ينتهي الا اذا اغلق الصفحة؟؟؟

وشكرا لكم على سعة صدركم

#3

شكرا اخي System Down على الرد السريع

اكتشفت المشكلة

المشكلة كانت هو انني اخزن اي dataset في اي صفحة في الموقع على نفس ال session

و بالتالي فإن العودة من صفحة الى السابقة عن طريق زر back يؤدي الى تغيير محتوى ال session

وبالتالي عدم التوافق مع محتويات ال datagrid

والحل هو ان نضع لكل dataset ان نضع session خاصة بها يعني باسم مختلف

ولكن هل لكثرت وجود ال session مشاكل على ال server

او ان كثرت ال session ليس له تأثير؟؟؟؟؟

بالضافة الى السؤالين:

ما افضل طريقة لعمل datagrid وال paging و ال sorting ؟؟؟

كيف استطيع ان اجعل ال session في ال webconfig ليس له مدة للا نتهاء اي لا ينتهي الا اذا اغلق الصفحة؟؟؟

قد أكون أثقلت عليكم بأسئلتي

شكرا لكم وبارك الله فيكم

#4

أنصحك بإستخدام ال Cache object بدل ال Session ف حفظ بيانات الداتا جريد

You can fly while you can touch the sky

#5

Cache object ؟؟؟؟؟

بصراحة اول مرة اسمع فيه

هل يمكن استخدامه باستخدام كود vb

اي ASP.net with vb

لو تستطيع ان تعطي مثال على ذلك اكون شاكر لك

#7

أخي لا أنصحك باستخدام هذه الطريقه بل عليك تنفيذها بهذه الطريقه :

أولا عند ال load أول مره للصفحه قم باستدعاء method تقوم بتعبئه ال data grid

	Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
			If (Not IsPostBack) Then
				FillDataGrid()

			End If
	End Sub

الان في هذه ال method التالي:

Private Sub FillDataGrid()
	Dim str As String = "select * from akhbar Order by kbrNum DESC"
	Dim dadapter As New SqlDataAdapter(str, connection)
	dadapter.Fill(dset)
	DG.DataSource = dset
	DG.DataBind()

End Sub

وهكذا لم يتبق عليك لعمل ال paging الا التالي :

Private Sub DG_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles DG.PageIndexChanged
	DG.CurrentPageIndex = e.NewPageIndex
	FillDataGrid()
End Sub
#8

أخي muqawem

هناك مشكلة في الطريقة التي أعطيتني اياها

وهي انه عند الضغط على زر الصفحة الثانية او الثالثة يعني pagging تكون قد فقدت ال dataset محتوياتها

وبالتالي كنت استخدم ال session لحفظ هذه ال dataset

ولكن هل هناك طريقة أخرى يمكن لل datagrid الاحتفاظ ببياناتها عند الذهاب للصفحة الثانية في عملية ال pagging

؟؟؟؟؟؟؟؟؟؟؟؟

هذا الموضوع مغلق.

مواضيع مشابهة