PDA

View Full Version : سوال: ارتباط گرید ویو داخل مستر پیج و گرید ویو صفحه اصلی



mohsen.nsb44
شنبه 26 تیر 1389, 11:05 صبح
سلام من یک گرید ویو داخل مستر پیج دارم که عنوان خبر هامو نشون میده یک گرید ویو هم داخل صفحه اولم دارم که 5 تا خبر اخر رو نشون میده و یک گرید ویو در صفحه ارشیو اخبار که تمام خبر هامو نشون میده حال می خواستم زمانی که روی عنوان کلیک شد در صفحه ارشیو فقط متن همون خبر دیده بشه.
در گرید ویو مستر پیج در قسمت تمپلیت یک لینک باتن گذاشتم و به عنوان خبرم بایند کردم
حال چه کدی باید بنویسم تا وقتی روی عنوان کلیک شد متن همون خبر دیده بشه؟

eyes_shut_number1
شنبه 26 تیر 1389, 11:18 صبح
فکر کنم اگه با FindControl کار کنی کارت سخت باشه.
بهتره اگه قراره صفحه پست بک بخوره(یعنی Ajax ) نیسن با QueryString این کار رو بکنی!
یعنی وقتی روی خبر کلیک شد صفحه بره مثلا به : Defulat.aspx?NewsID=12
بعد تو قسمت آرشیو این ایدی رو بگیری و خبر رو نمایش بده
int NewsID=int.parse(Request["NewsID"].ToString());

mohsen.nsb44
شنبه 26 تیر 1389, 11:26 صبح
فکر کنم اگه با FindControl کار کنی کارت سخت باشه.
بهتره اگه قراره صفحه پست بک بخوره(یعنی Ajax ) نیسن با QueryString این کار رو بکنی!
یعنی وقتی روی خبر کلیک شد صفحه بره مثلا به : Defulat.aspx?NewsID=12
بعد تو قسمت آرشیو این ایدی رو بگیری و خبر رو نمایش بده
int NewsID=int.parse(Request["NewsID"].ToString());
میشه یکم بیشتر توضیح بدین؟ با find control هم یه توضیحی بدین ممنون میشم

imanasp
شنبه 26 تیر 1389, 11:28 صبح
سلام من یک گرید ویو داخل مستر پیج دارم که عنوان خبر هامو نشون میده یک گرید ویو هم داخل صفحه اولم دارم که 5 تا خبر اخر رو نشون میده و یک گرید ویو در صفحه ارشیو اخبار که تمام خبر هامو نشون میده حال می خواستم زمانی که روی عنوان کلیک شد در صفحه ارشیو فقط متن همون خبر دیده بشه.
در گرید ویو مستر پیج در قسمت تمپلیت یک لینک باتن گذاشتم و به عنوان خبرم بایند کردم
حال چه کدی باید بنویسم تا وقتی روی عنوان کلیک شد متن همون خبر دیده بشه؟

از hyperlink استفاده کن و NavigateUrl رو برابر:
"ArchivePage.aspx?value="+Eval("Id")بذار بعد در pageload صفحه ArchivePage.aspx، آی دی رو بگیر select بزن رو تیبلت و در نهایت gridview رو بهش بایند کن

پاورقی:منتهی قبلش بهتره واسه امنیت QueryString رو انکریپتش کنی بعد در صفحه مورد نظر بازش کنی و ازش استفاده کنی

eyes_shut_number1
شنبه 26 تیر 1389, 11:31 صبح
مورد QueryString که واضح هستش.
اما در مورد FindControl : هر المانی در Asp.net شامل یک 1متد است FindContrrol
و یک خصوصیت : Parent
حال شما می تونید محتویات داخل یک کنترل رو اینجوری پیدا کنی
مصلا برای پیدا کردن گرید ویو که داخل form1 است اینجوری رفتار میکین:


GridView gr=(GridView) form1.FindControl("GridView1")

با این کار به فرزنداد درسترسی داری
اما شما چون در صفحات داخلی Masterpage هستی نمیتونی از این روش برای پیدا کردن کنترل خارجی استفاده کنی
باید اینجوری رفتا ر کنی


GridView gr=(GridView) form1.Parent.FindControl("GridView1")

mohsen.nsb44
شنبه 26 تیر 1389, 11:39 صبح
اما


GridView gr=(GridView) form1.Parent.FindControl("GridView1")

دوست عزیز در صفحه خبر کد شما رو قرار دادم اما ارور زیر رو داد



Server Error in '/WebSite6' Application.

Compilation Error

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: CS1010: Newline in constant

Source Error:

Line 17: {Line 18: Line 19: GridView gr=(GridView)Form.Parent.FindControl(""GridView1");Line 20: }Line 21: }

: }

eyes_shut_number1
شنبه 26 تیر 1389, 12:32 عصر
قبل از GridView1 یک دابل کوتیشن اضافه زدی.
و بعد هم GridView1 نام گرید هستش شما باید نام گرید خودتو بذاری

mohsen.nsb44
شنبه 26 تیر 1389, 12:39 عصر
قبل از GridView1 یک دابل کوتیشن اضافه زدی.
و بعد هم GridView1 نام گرید هستش شما باید نام گرید خودتو بذاری
دوست عزیز دبل کوتیشن اضافیو حذف کردم اما زمانی که روی عنوان کلیک می کنم هیچ اتفاقی نمیوفته
در ضمن گرید ویو مستر ÷یج من GridView1 هستش

eyes_shut_number1
شنبه 26 تیر 1389, 12:42 عصر
با این کار شما گرید ویو رو پیدا میکنی حالا هر کاری بخوای روش انجام میدی.
از Break point و debugging استفاده کن

mohsen.nsb44
شنبه 26 تیر 1389, 12:51 عصر
با این کار شما گرید ویو رو پیدا میکنی حالا هر کاری بخوای روش انجام میدی.
از Break point و debugging استفاده کن
دوست عزیز زحمت که کشیدین پیدا کردن گرید ویو رو یادم دادین حالا میشه نحوه استفاده از Breek point , ebuging رو بهم یاد بدین؟
ممنون میشم اگه زحمت یاد دادنشو بکشین

mehdi.mousavi
یک شنبه 03 مرداد 1389, 00:30 صبح
لطفا راهنمایی بکنید در گام بعدی چیکار باید بکنم چرا همه یه مطلبو تیکه پاره می گن تنها کسی که من تو یه مسئله درست و کامل راهنمایی کرد تا مشکلم حل بشه اقای مهدی موسوی بود لطفا راهنمایی کنید

سلام.
یکی از روش های انجام این کار این هستش که شما ID ی عنوان خبر رو جایی در HTML خودتون قرار بدید (بطور مثال در href لینک مربوطه) و سپس با استفاده از JavaScript یا jQuery (یا هر JS Framework دیگه ای که باهاش کار می کنید)، وب متودی از سرور رو فراخوانی کنید و با دادن ID ی عنوان اون خبر، متن خبر رو بصورت یه string بگیرید و روی صفحه نمایش بدید.

روش دیگه اینه که عنوان و متن رو تواما به Client ارسال کنید، اما در وهله اول متن رو hide کنید (با استفاده از CSS). سپس وقتی روی عنوان زده شد، همونجا سمت Client، متن مورد نظر رو show کنید.

روش دیگه استفاده از PostBack ها هستش. به این ترتیب که با استفاده از UpdatePanel (برای اینکه کل صفحه Refresh نشه)، از کلیک شدن LinkButton مزبور (که همون عنوان خبر هستش) سمت سرور مطلع بشید، سپس سمت سرور کنترل مربوط به متن خبر رو Visible کنید تا Render بشه.

روش بعدی استفاده از Client Callback ها هستش. به این ترتیب که با فراخوانی یه Page Method (وقتی که کاربر روی عنوان خبر زد)، HTML مورد نظر رو (که همون متن خبر هستش) رو بگیرید و توی صفحه نمایش بدید.

موفق باشید.