PDA

View Full Version : از چه کنترلی استفاده کنم



mohsen_zelzela00
یک شنبه 15 آذر 1388, 23:54 عصر
با سلام
من در یک سایت یک صفحه اصلی دارد که کار یک فروشگاه رو انجام میده(البته به صورت مثال) حالا می خوام وقتی بر روی مثلاً مدیریت کارمندان کلیک کنم یک صفحه دیگر برام باز شود که در آن صفحه یک منو دارای چند زیر منو برای insert و updateو delete و search وجود دارد حالا می خواهم وقتی بر روی مثلاً زیر منوی insert کلیک کردم در همون صفحه بدون postback یک کادری برام باز شود که من بتونم اطلاعاتم رو اونجا وارد کنم و سپس دکمه ثبت رو کلیک کنم برای این کار از چه کنترلی استفاده کنم و چگونه؟؟؟؟؟؟؟؟؟


ممنون میشم اگه دوستان کمکم کنند

خیلی بهش احتیاج دارم

Mostafa_Dindar
یک شنبه 15 آذر 1388, 23:57 عصر
همچين كنترلي كه اين همه كار رو انجام بده وجود ندارد و وجود هم نخواهد داشت .
شما بايد از تركيب چندين كنترل استفاده كنيد .

imanasp
دوشنبه 16 آذر 1388, 09:52 صبح
شما می خای کلی عملیات انجام بدی و یه کنترل تمام این کارها رو انجام بده! شاید یه روزی برسه که این اتفاق بیفته ولی به نظرم زمانیه که کارهای بشر رو روباتها انجام میدن:لبخند:
شما میتونی از کنترل های جامع مثل gridview, datalist یا formview برای نمایش اطلاعات مدیریت کاربرانت استفاده کنی که برای insert, update ,... هم باید کدنویسی کنی تا بتونی مدیریت بهتر خطا و ... رو به خوبی انجام بدی و برای این که صفحه سایتت postback نشه میتونی از کنترل هایی که بعد از مقدار گرفتن یا انجام یک سری از عملیات روی اونها از update panel استفاده کنی
موفق باشی

raziee
دوشنبه 16 آذر 1388, 10:22 صبح
همون صفحه بدون postback یک کادری برام باز شود
خوب این کادر میتونه از سرور گرفته بشه دیگه درسته؟ میتونید یک فایل براش بسازید و به اون صفحه دلینک بدید.

<a href="javascript" onclick="javascript:window.open('strUrl','_comments','statu s=yes,scrollbars=yes,toolbar=no,menubar=no,locatio n=no ,width=500px,height=500px')" >INSERT</a>
اگر هم از مستر پیج استفاده میکنید و این فایل(insert( به صورت کانتنت هست یک سری کنترل های مربوط به oboutSuite هست که بدون پست بک صفحه رو تغییر میده. اما خوب پولیه.
اگه به این روش خاصی کار کنی میتونی از jQuery هم استفاده کنی. فکر کنم تو وبلاگ استاد نصیری یه چیزایی خونده بودم درست یادم نمیاد.

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

Alireza_Salehi
دوشنبه 16 آذر 1388, 11:37 صبح
از MultiView استفاده کنید.

mohsen_zelzela00
دوشنبه 16 آذر 1388, 12:02 عصر
اما اگه در یک قسمتی از صفحه قراره نمایش داده بشه میتونی از یوزر کنترل ها استفاده کنی و با استفاده از آژاکس به صفحه بیارید.
دقیقاً من هم نظرم استفاده از User Control است البته همراه با ajax(همون upadtepanel) من این کار رو هم انجام دادم ولی خوب مثلاً برای دکمه که User Control وجود دارد کد می نویسم اصلاً اون کد اجرا نمی شه برا همین خیلی اذیت شدم

ممنون میشم اگه کمک کنید چون خیلی حیاتی است

mohsen_zelzela00
دوشنبه 16 آذر 1388, 16:56 عصر
شما می خای کلی عملیات انجام بدی و یه کنترل تمام این کارها رو انجام بده! شاید یه روزی برسه که این اتفاق بیفته ولی به نظرم زمانیه که کارهای بشر رو روباتها انجام میدن:لبخند:
شما میتونی از کنترل های جامع مثل gridview, datalist یا formview برای نمایش اطلاعات مدیریت کاربرانت استفاده کنی که برای insert, update ,... هم باید کدنویسی کنی تا بتونی مدیریت بهتر خطا و ... رو به خوبی انجام بدی و برای این که صفحه سایتت postback نشه میتونی از کنترل هایی که بعد از مقدار گرفتن یا انجام یک سری از عملیات روی اونها از update panel استفاده کنی
موفق باشی
دوست عزيز فكر كنم كه بنده بد توضيح دادم
ببينيد من يك صفحه دارم مثلاً index.aspx و كه در اين صفحه من يك منو وجود دارد كه مثلاً يكي از زير منو هاي آن مديريت كارمندان است وقتي كه بر روي مديريت كاربران كليك كردم
يك صفحه جديد برام باز ميشه كه اون صفحه هم داراي يك منو براي اضافه و حذف و ... است و يك panel من تا اينجا مشكلي ندارم حالا مي خوام وقتي كه كاربر بر روي اضافه كردن كارمند كليك كرد بدون اينكه صفحه post back داشته باشه اون كنترل من درون panel نشون داده مشه(من اين كار رو با استفاده از User Control و كنترل update panel انجام دادم) حالا مشكل من اينه كعه كدي كه در user control براي دكمه button نوشتم كه عمل اضافه كردن رو انجام ميده اصلاً اجرا نميشه

ممنون ميشم دوستان كمك كنند

imanasp
دوشنبه 16 آذر 1388, 17:32 عصر
با stack چک کردی ببینی که متغیرهات مقدار می گیرن یا نه؟
اینم چک کن که دستورات اضافه کردن رو درست نوشتی یا نه؟
یه زمانی کد من عمل نمی کرد به نظرم همه چیز درست میومد ولی یه اشتباه کوچیک داشتم اونم اینکه به جای
selectedvalue.tostring() باید می نوشتم
selectedItem.text

mehdi.mousavi
دوشنبه 16 آذر 1388, 17:38 عصر
با stack چک کردی ببینی که متغیرهات مقدار می گیرن یا نه؟

یعنی چی؟ منظورتون Call Stack هستش؟

mehdi.mousavi
دوشنبه 16 آذر 1388, 17:50 عصر
حالا مي خوام وقتي كه كاربر بر روي اضافه كردن كارمند كليك كرد بدون اينكه صفحه post back داشته باشه اون كنترل من درون panel نشون داده مشه(من اين كار رو با استفاده از User Control و كنترل update panel انجام دادم) حالا مشكل من اينه كعه كدي كه در user control براي دكمه button نوشتم كه عمل اضافه كردن رو انجام ميده اصلاً اجرا نميشه ممنون ميشم دوستان كمك كنند

سلام.
اینطور که بنظر میرسه شما از Page Life Cycle در .NET بی اطلاع هستید. اگر کنترل رو به موقع و در جایگاه مشخص ایجاد کنید (یا در مورد شما LoadControl کنید)، این مشکل پیش نخواهد اومد. وقتی شما User Control خودتون رو دفعه اول Load میکنید، همه چی OK هستش. با اولین Postback شما باید بازهم در جایگاه مناسب، UserControl خودتون رو Load کنید و الا Handler های موجود در User Control فراخوانی نخواهد شد. اگر جای User Control از کنترلهای static در ASPX خودتون استفاده کنید، این مشکل پیش نخواهد اومد چون اون کنترلها با هر بار Postback به سمت سرور در فاز معینی Create میشن و Event های مربوط به اون کنترلها بدرستی سمت سرور فراخوانی خواهد شد.

شما اینجا دو راه دارید. یکی اینکه با هر بار Postback به سمت سرور، کنترلهای مورد نظر خودتون رو در Page_Load (یا فاز مناسب دیگه ای بسته به شرایط) load کنید که در نتیجه event handler های attach شده به کنترلهای شما بدرستی فراخوانی خواهد شد.

روش دوم باز کردن صفحه جدید در بک iframe هستش که بدین ترتیب، Page Life Cycle مزبور طبق معمول بوده و نیازی به ایجاد کنترلها بصورت Dynamic نخواهد بود.

برای توضیحات بیشتر میتونید به کتاب Pro ASP.NET 3.5 in C# 2008 نوشته Matthew MacDonald رجوع کنید.

موفق باشید.

mohsen_zelzela00
دوشنبه 16 آذر 1388, 21:59 عصر
سلام.
اینطور که بنظر میرسه شما از Page Life Cycle در .NET بی اطلاع هستید. اگر کنترل رو به موقع و در جایگاه مشخص ایجاد کنید (یا در مورد شما LoadControl کنید)، این مشکل پیش نخواهد اومد. وقتی شما User Control خودتون رو دفعه اول Load میکنید، همه چی OK هستش. با اولین Postback شما باید بازهم در جایگاه مناسب، UserControl خودتون رو Load کنید و الا Handler های موجود در User Control فراخوانی نخواهد شد. اگر جای User Control از کنترلهای static در ASPX خودتون استفاده کنید، این مشکل پیش نخواهد اومد چون اون کنترلها با هر بار Postback به سمت سرور در فاز معینی Create میشن و Event های مربوط به اون کنترلها بدرستی سمت سرور فراخوانی خواهد شد.

شما اینجا دو راه دارید. یکی اینکه با هر بار Postback به سمت سرور، کنترلهای مورد نظر خودتون رو در Page_Load (یا فاز مناسب دیگه ای بسته به شرایط) load کنید که در نتیجه event handler های attach شده به کنترلهای شما بدرستی فراخوانی خواهد شد.

روش دوم باز کردن صفحه جدید در بک iframe هستش که بدین ترتیب، Page Life Cycle مزبور طبق معمول بوده و نیازی به ایجاد کنترلها بصورت Dynamic نخواهد بود.

برای توضیحات بیشتر میتونید به کتاب Pro ASP.NET 3.5 in C#‎ 2008 نوشته Matthew MacDonald رجوع کنید.

موفق باشید.
پس یعنی نمی شه با User Control و Ajax اون رو پیاده کرد آخه من یه همچین چیزی رو دیدم

mohsen_zelzela00
دوشنبه 16 آذر 1388, 22:05 عصر
سری کنترل های مربوط به oboutSuite هست که بدون پست بک صفحه رو تغییر میده. اما خوب پولیه.
ا

دوست عزیز میشه یه خورده در مورد این component توضیح بدید و میشه نسخه free اونو گیر اورد ؟؟؟؟؟؟؟؟؟؟؟

raziee
دوشنبه 16 آذر 1388, 23:39 عصر
دوست عزیز میشه یه خورده در مورد این component توضیح بدید و میشه نسخه free اونو گیر اورد ؟؟؟؟؟؟؟؟؟؟؟
مستر پیج که کانتنت هاش بدون رفتن به سمت سرور تغییر میکنند.
پولیه و 15 روزه نسخه ی تریال هست.
با جی کوئری هم میشه نوشتش این رو میدونم اما خودم بلد نیستم.
تو وبلاگ استاد نصیری یه چیزایی خونده بودم درست یادم نمیاد.
اما در مورد یوزر کنترل ها :
کنترل رو بدن استفاده از آپدیت پنل بنویسید اونوقت میبینید که در پست بک شدن یوزر کنترل از بین میره و بنابراین کدهای Insert کتر نمیکنه.
آقای mehdi6755 توضیحاتی در این باره دادند.

mehdi.mousavi
سه شنبه 17 آذر 1388, 13:42 عصر
پس یعنی نمی شه با User Control و Ajax اون رو پیاده کرد آخه من یه همچین چیزی رو دیدم

از توضیحات من همچین برداشتی کردید؟ من به شما دلیل Call نشدن Handler سمت سرور رو توضیح دادم و اینکه چطور میتونید این مشکل رو حل کنید. از هر چی که استفاده می کنید، باید مطمئن بشید که در جایگاه مناسب کنترل های dynamic شما Create میشن تا Handler های مورد نظرتون هم فراخوانی بشن... حالا UserControl، MS-AJAX یا هر ابزار دیگه ای که مایل بودید استفاده کنید، اما به توضیحاتی که دادم دقت کنید.

موفق باشید.