PDA

نسخه کامل مشاهده نسخه کامل : صفحه صفحه کردن دیتا گرید



parisa1
17-04-2011, 17:12
سلام
پایگاه داده ای که طراحی کردم ستون هاش زیاده اگه بخوام همه رو نشون بده باید دیتا گرید ویو صفحه بندی بشه اما نمیدونم چطوری؟:41:

aliaghaaaaa
17-04-2011, 19:23
سلام.
شما باید یه ستون مثلا به نام آی دی داشته باشید که مقدارش اتوماتیک اضافه بشه
بعد تو کوئری اینطور بنویسید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اینطوری رکوردهایی رو بر می گردونه که آی دی هاشون بین 100 تا 200 باشه.

parisa1
17-04-2011, 20:17
سلام.
شما باید یه ستون مثلا به نام آی دی داشته باشید که مقدارش اتوماتیک اضافه بشه
بعد تو کوئری اینطور بنویسید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداینطوری رکوردهایی رو بر می گردونه که آی دی هاشون بین 100 تا 200 باشه.

ممنونم

اما سوالی که اینجا پیش میاد اینه که ستون آی دی در واقع تعداد سطرهایی که قراره نمایش بده رو تعیین می کنه
اما من 48 ستون دارم میخوام که مثلا 10 ستون در صفحه اول دیتا گرید ویو نمایش داده بشه و به همین ترتیب بقیه صفحه ها

pezhmax
17-04-2011, 21:03
شما میخوای ستونها رو صفحه بندی کنی!!!! یا رکوردهای دیتابیس رو. در هر دو صورت راه حل پیشنهادی اشتباهه.

aliaghaaaaa
18-04-2011, 07:27
سلام.
ممنون از راهنمایی دوست خوبم pezhmax. ولی چرا اشتباهه؟ میشه لطفا راهنمایی کنید؟
به نظر من برای صفحه بندی رکوردها میشه از این راه استفاده کرد و توی هر صفحه یه تعداد از رکوردها رو نمایش داد.
البته تو asp یه راه هست که میشه دیتاگرید رو صفحه بندی کرد. با استفاده از گزینه enable paging
ولی من هنوز تو سی شارپ امتحانش نکردم.
برای صفحه بندی کردن ستون ها هم به نظر من فقط کافیه دستور select رو یه کم دستکاری کنیم و تو هر صفحه یه تعداد از ستون ها رو select کنیم.

pezhmax
18-04-2011, 10:51
برای این اشتباهه که اگه شما بین رکوردهای 100 و 200 در مثال بالا 5 تا رکورد رو پاک کنید به جای 100 رکورد برای هر صفحه، 95 تا رکورد رو نشون میده. اگر هم بخوای با پاک کردن هر رکورد کل id ها رو دوباره مرتب کنی، سربار پردازشی زیادی به سرور تحمیل میشه.

دستور صحیح برای در یافت تعداد مشخصی رکرود در SQL Server 2005 یا بالاتر استفاده از تابع ROW_NUMBER هست :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

aliaghaaaaa
18-04-2011, 11:59
سلام.
ممنون.
تو کد شما کدوماشون کلمه کلیدی هستن؟
[SalesOrderHeader]یا
[RowNumber]
یا
[OrderDate
ممنون.

parisa1
18-04-2011, 19:11
برای این اشتباهه که اگه شما بین رکوردهای 100 و 200 در مثال بالا 5 تا رکورد رو پاک کنید به جای 100 رکورد برای هر صفحه، 95 تا رکورد رو نشون میده. اگر هم بخوای با پاک کردن هر رکورد کل id ها رو دوباره مرتب کنی، سربار پردازشی زیادی به سرور تحمیل میشه.

دستور صحیح برای در یافت تعداد مشخصی رکرود در SQL Server 2005 یا بالاتر استفاده از تابع ROW_NUMBER هست :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

سلام وتشکر از دو دوست گرامی
من میخوام ستونها رو صفحه بندی کنه مثلا در صفحه اول 10 ستون رو نمایش بده البته با پایگاه داده اکسس و زبان وی بی دات نت

pezhmax
18-04-2011, 22:46
سلام.
ممنون.
تو کد شما کدوماشون کلمه کلیدی هستن؟
[SalesOrderHeader]یا
[RowNumber]
یا
[OrderDate
ممنون.


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

pezhmax
18-04-2011, 22:55
سلام وتشکر از دو دوست گرامی
من میخوام ستونها رو صفحه بندی کنه مثلا در صفحه اول 10 ستون رو نمایش بده البته با پایگاه داده اکسس و زبان وی بی دات نت

با روشهای معمول نمیشه این کارو انجام داد. باید اینطوری در نظر بگیری که یه کلکسیون داده داری که شامل همه ستونها میشه. حالا با کلیک کردن روی هر کدوم از کلیدهای صفحه بندی یه بخش از این ستونها رو نشون میدی. چون خودت از قبل تعداد ستونها رو میدونی این کار ساده تر میشه.

مثلا فرض کنیم شما 20 تا ستون داری و مبنابراین فقط دو تا کلید تعریف میکنی که هر کدوم یه تعدادی ستون رو از جدول میخونه و اونها را به یکی از کنترلهای لیستی مثل گرید Bind میکنه. مثلا برای کلید صفحه اول دستور SQL رو طوری مینویسی که فقط ستونهای اول تا دهم رو نشون بده.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید