PDA

View Full Version : استفاده از دیتاگرید جهت نمایش و ورود 300 رکورد



yavari
جمعه 03 شهریور 1385, 10:03 صبح
سلام

دوستان ، لطفا منو راهنمائی کنید
من واسه نمایش و ورود اطلاعات حداکثر 300 رکورد از دیتا گرید استفاده کردم
هنوز راه زیادی نرفتم ، میخوام بدونم قراره به مشکل بر بخورم یا راهائی برا لود شدن و فیلتر رکودای خاص داخل اون هست ؟؟؟
با صفحه بندی کردن اون مشکل حل میشه یا نه ؟
در ضمن شما برا همچین کاری از چه کنترلی استفاده می کنید ؟

ممنون میشم راهنمائیم کنین !

mehdi58
جمعه 03 شهریور 1385, 11:19 صبح
یه مقاله در این زمینه و برای کارآیی بهتر Datagrid توی WWW.Iranasp.net قبلا خوندم اما الان لینکش رو ندارم
بهتره یه سری به اونجا بزنی .

mehdi58
جمعه 03 شهریور 1385, 11:44 صبح
این هم لینک اون مقاله

http://www.iranasp.net/Articles/ShowArticle.aspx?articleid=145

dot_net_lover2
جمعه 03 شهریور 1385, 16:23 عصر
تا اونجا که با یک بررسی اجمالی این مقاله متوجه شدم مربوط به اعمال Paging است و لی اگر دوستمون از DataGrid دارن استفاده میکنند ٬ خوب به راحتی میتونن Paging را انجام دهند.
به نظر من به نحوی شما اگر Paging و Filtering اطلاعات را با هم اقدام کنید هم Application شما UserFriendly شده و هم از لحاظ سرعت دستیابی بهتر میشود.
بدین صورت که شما Filtering را بر اساس یک فیلد پر کاربرد انجام دهید و Paging را بر اساس مقادیر این فیلد.
مثلا اگر شما در بین فیلدهای خود ٬ فیلد نام داشته باشید و Filtering را بر اساس آن انجام دهید Paging شما به صورت زیر در می آید(با فرض اینکه مقادیر فیلد نام همه انگلیسی بوده)

A-B.....C-D.......E-F.......G-H

M.GhanaatPisheh
جمعه 03 شهریور 1385, 19:40 عصر
پیشنهاد می کنم در نمایش تعداد رکوردهای بالا از راه حل زیر استفاده کنید:
یک Stored Procedure بنویسید که n رکورد mام رو از جدول SQLتون برگردونه(مثلا 10 رکورد اول، 10 رکورد دوم...)
Custom Paging برای DataGrid خودتون بنویسید که برای دریافت اطلاعات از SP بالا استفاده کنه.

"البته این نکته قابل ذکر هست که این راه حل بیشتر در Applicationهای web based کارسازه. شاید بازیابی 300رکورد برای یه Application تحت ویندوز در یک نگاه اجمالی تعداد بالایی نباشه"

yavari
سه شنبه 11 مهر 1385, 15:37 عصر
سلام دوستان
من از پیشنهادای خوب دوستامون آقا مهدی و جناب قناعت پیشه
استفاده کردم اما متاسفانه نمی فهمم کجای کارم داره میلنگه ؟ :گریه:
چون فکر میکردم سوالم مربوط میشه به رویه های ذخیره شده اونو تو تالار SQLهم مطرح کردم !
http://barnamenevis.org/forum/showthread.php?p=271852#post271852
از این پروسیجر استفاده کردم اما همه رکودامو نشون میده ! :گریه:



CREATE PROCEDURE dbo.procGetPagedAllUseres
(
@CurrentPage int,
@PageSize int,
@TotalRecords int output
)
AS

SET NOCOUNT ON

--Create a temp table to hold the current page of data
--Add an ID column to count the records
CREATE TABLE #TempTable
(
ID int IDENTITY PRIMARY KEY,
Radif int
)
--Fill the temp table with the News data
INSERT INTO #TempTable
(
Radif
)
SELECT Radif
FROM Useres

--Create variable to identify the first and last record that should be selected
DECLARE @FirstRec int, @LastRec int
SELECT @FirstRec = (@CurrentPage - 1) * @PageSize
SELECT @LastRec = (@CurrentPage * @PageSize + 1)
--Select one page of data based on the record numbers above
SELECT *
FROM
#TempTable
WHERE
Radif > @FirstRec
AND
Radif < @LastRec
--Return the total number of records available as an output parameter
SELECT @TotalRecords = COUNT(*) FROM #TempTable
GO
ممنون میشم کمکم کنید

white fox
پنج شنبه 13 مهر 1385, 13:33 عصر
مقادیر ارسالی به SP رو تست کردید؟ پارامترها به درستی و با مقدار صحیح ارسال میشن؟

yavari
جمعه 14 مهر 1385, 07:07 صبح
سلام

ممنون دوست عزیز کم پیدا !:بامزه:
مشکلم حل شد تو همون تاپیک نتیجه رو گذاشتم !

موفق باشید