PDA

View Full Version : سوال: کدام روش برای نمایش اطلاعات یک ردیف از GridView پس از انتخاب آن ردیف مناسب است؟



aftabgarmabakhsh
شنبه 18 اردیبهشت 1389, 09:11 صبح
سلام دوستان
من 1 سوال اساسي دارم:
من 1 page دارم كه تويش يك grid view و يكسري كامپوننت text box,drop down , ... است

مي خوام با كليك روي گريد ويو، اطلاعات آن سطر ، در كامپوننت ها نشان داده بشه.

2 روش وجود دارد:
1)كليه فيلد هايي كه در select هستند را در گريد ويو بذارم و آنهايي كه مهم هستند را visible و بقيه را invisible كنم. سپس در Selected index changed گريد ، اطلاعات آن سطر را در كامپوننت ها بريزم

2)فقط فيلدهايي كه نياز هستند را در گريد ويو بذارم. سپس در selected index changed گريد ، بر اساس datakey دوباره از ديتابيس select كنم و كامپوننت ها را از اين ديتاست جديد(كه select كردم)پر كنم

حالا به نظرتون كدام روش بهتر و اصولي تر است؟

به نظر خودم روش 1 بهتر است چون نياز نيست 2 بار Select كنم
ولي 1 سري ميگن grid view هنگام Render شدن صفحه ، تبديل به td ميشه و اگر تعداد ستون هاي گريد ويو زياد باشه ، سرعت لود صفحه سمت كلاينت خيلي پايين مياد پس روش 2 بهتره


اساتيد محترم لطفا" كمكم كنيد و من را راهنمايي كنيد كه كدام روش بهتره.
ممنون

mehdi.mousavi
شنبه 18 اردیبهشت 1389, 10:31 صبح
سلام دوستان 1)كليه فيلد هايي كه در select هستند را در گريد ويو بذارم و آنهايي كه مهم هستند را visible و بقيه را invisible كنم. سپس در Selected index changed گريد ، اطلاعات آن سطر را در كامپوننت ها بريزم 2)فقط فيلدهايي كه نياز هستند را در گريد ويو بذارم. سپس در selected index changed گريد ، بر اساس datakey دوباره از ديتابيس select كنم و كامپوننت ها را از اين ديتاست جديد(كه select كردم)پر كنم
حالا به نظرتون كدام روش بهتر و اصولي تر است؟

سلام.
بستگی داره هر ردیف حاوی چه حجمی از اطلاعات باشه. اگر این اطلاعات کم هستند و GridView در حالت Paging مورد استفاده قرار میگیره، و تعداد ردیفهای هر Page هنگام نمایش کم هستش، روش اول بهتره.

اما اگر یکی از شرایط فوق مهیا نیستش، من روش دوم رو می پسندم.

اما روش سومی هم وجود داره و اون، عدم استفاده از امکانات GridView هستش. بعنوان مثال، شما می تونید با استفاده از jQuery از سرور بخواهید که اطلاعات رکورد با ID مورد نظر شما را به شما برگردونه. بدین ترتیب، حداقل اطلاعات بین Client و Server رد و بدل میشه و شما میتونید اطلاعات دریافتی رو سمت Client به هر شکلی که مایل هستید چیده و نمایش بدید. البته این روش از دیده توسعه دهنده کار بیشتری میبره، اما خوب، نتیجه نیز کاملا متفاوته.

موفق باشید.

aftabgarmabakhsh
شنبه 18 اردیبهشت 1389, 11:29 صبح
ميشه يكم بيشتر توضيح بدين؟

mehdi.mousavi
شنبه 18 اردیبهشت 1389, 11:39 صبح
ميشه يكم بيشتر توضيح بدين؟

چه چیزی رو؟ روش سوم رو؟ به این روش میگن Ajax-Style... درخواست شما از طریق کد JavaScript به دست سرور و نهایتا Web Method مورد نظر میرسه، اونجا سمت سرور اطلاعات مورد نظر بر اساس پارامتر ID از بانک استخراخ میشه، و بصورت یک بسته JSON به Client بر میگرده. وقتی این اطلاعات در دسترس JavaScript قرار گرفت، اونوقت میتونید هر طور مایل بودید اونها رو روی صفحه نمایش بدید. jQuery به شما کمک میکنه تا کل این روند رو بسیار ساده تر و جذاب تر انجام بدید، بدون اینکه با جزییات درگیر بشید.

از اونجاییکه اطلاعات بصورت JSON دریافت شده، حداقل اطلاعات روی خط رد و بدل میشه... (بر خلاف XML) و چون jQuery برای کار با JSON تدابیر لازم رو از قبل اندیشیده، دیگه دردسری وجود نخواهد داشت.

بدین ترتیب، بار اضافی بخاطر Render شدن مجدد GridView از دوش سرور برداشته میشه و صفحه Client نیز بی جهت Refresh نمیشه.

موفق باشید.