PDA

View Full Version : نمره دادن با ستاره(star rating)



masud8002k
سه شنبه 13 تیر 1391, 23:03 عصر
در مورد نمره دادن با ستاره کسی میتونه راه راحتری پیشنهاد بده؟؟؟کار کردن با هاش راحت باشه و توضیح هم بدید که مثلا برای مقاله که من فیلد دارم در دیتا بیس(id,title,body)باید فیلد دیگری اضافه کنم نتیجه رو نگه داری کنه؟؟؟؟این برام خیلی واجبه اگر تونستید راه راحتری با توضیحات کامل برام بدید تا من تموم کنم برام شمل ساز شده

Fartaj
چهارشنبه 14 تیر 1391, 06:49 صبح
سلام دوست عزیز

من خودم برای امتیاز دادن از کنترل rating موجود در ajax toolkit استفاده کردم تو یک کتابخانه دیجیتال که به کتاب ها امتیاز بده و برای اون یک جدول جدا در نظر گرفتم که آی دی مربوط به کتاب و امتیاز اون کتاب رو در خودش ذخیره می کنه استفاده از این کنترل راحته اما خود ajax toolkit حجم پروزه رو بالا می بره اگه خواستی بگو تا بیشتر توضیح بدم

masud8002k
چهارشنبه 14 تیر 1391, 20:15 عصر
بله بیشتر توضیح بدید ممنون میشم

Fartaj
چهارشنبه 14 تیر 1391, 22:00 عصر
نمی دونم با toolkit آشنایی داری یا نه !
برای دانلود این کامپوننت می تونی بری به این آدرس :
http://ajaxcontroltoolkit.codeplex.com/releases/view/90063
بعد از دانلود و افزودن dll اون به toolbox لیستی از ابزارهای ajax اضافه می شه تو این کنترل ها کنترلی به نام rating وجود داره که کلا قبل از استفاده از این کنترل ها باید کنترل ToolkitScriptManager رو تو صفحه بالای تمام ابزارها قرار بدی خوب تا اینجا ToolkitScriptManager و rating رو به صفحه اضافه کردیم
تنظیمات rating :
برای استفاده از این کنترل شما باید تو تنظیمات اون تعدادی تصویر به اون اختصاص بدید که در واقع همون عکس ستاره خالی و پر هست که می تونه ستاره یا هر شکل دیگه ای باشه که البته باید با css این کار رو بکنی :

.ratingStar
{
font-size: 0pt;
width: 13px;
height: 12px;
cursor: pointer;
display: block;
background-repeat: no-repeat;
}
.filledStar
{
background-image: url(../image/FilledStar.png);
}
.emptyStar
{
background-image: url(../image/EmptyStar.png);
}
.savedStar
{
background-image: url(../image/SavedStar.png);
}

بعد از اینکه این css رو درست کردی باید بیای تو تنظیمات rating و هر کلاس css رو تو جای درستش اختصاص بدی مثلا تو قسمت empty star css class باید کلاس emptystar رو نسبت بدی .

بعد از این کار باید بیای تو رویداد changed مربوط به rating و این کد رو قرار بدی :


cs.Open();

SqlCommand cmd = new SqlCommand("insert into bookrating (bid,rate)values(@bid,@rate)", cs);

cmd.Parameters.AddWithValue("@bid",Convert.ToInt32(lblid.Text));
cmd.Parameters.AddWithValue("@rate", Rating1.CurrentRating);

cmd.ExecuteNonQuery();

cs.Close();


این کد رو من براساس کتابخانه قرار دادم به این صورت که کاربر وقتی وارد کتاب خاص می شد آی دی اون رو نگه می دارم حالا وقتی بهش می خواد امتیاز بده همون آی دی رو با اون امتیازی که انتخاب کرده تو دیتابیس ثبت می شه . شما می تونید برای مقاله هاتون یک جدول به نام articlerating در نظر بگیرید و با همین روشی که توضیح دادم اون رو پیاده کنی

امیدوارم مشکلت حل بشه

Juyaye javan
پنج شنبه 22 تیر 1391, 07:30 صبح
سلام، من تمام اين كارها رو به ترتيب انجام دادم اما زمانيكه اجرا ميكنم با error برخورد ميكنم
حتي خود برنامه هم بهم يه warning ميده.
چطور ميتونم اين مشكلو رفع كنم؟
هشداري كه ميده اينه :
Reference to type 'System.Web.UI.CompositeScriptReferenceEventArgs' claims it is defined in 'c:\WINDOWS\assembly\GAC_MSIL\System.Web.Extension s\3.5.0.0__31bf3856ad364e35\System.Web.Extensions. dll', but it could not be found
من مسيري كه مي گفت و دنبال كردم و فهميدم كه System.Web.Extension تو مسير
c:\WINDOWS\assembly\System.Web.Extensions
هستش حالا چطور ميتونم اينو درست كنم

ali_kolahdoozan
پنج شنبه 22 تیر 1391, 07:41 صبح
اگر در همه پروژه از Ajax Toolkit ها دارید استفاده میکنید ، خب این هم روش استفاه کنید . خیلی هم خوب .

اما اگر این تنها دلیل استفاده از Ajax Toolkit ها است به نظر من از Jquery استفاده کنید که بسی سبک تر است فقط برای یک موضوع ساده مثل این . در طراحی دیتابیس هم اگر UI را آماده کرده با JQuery برات خواهم گفت چه کنی که آسانتر و نرم تر جلو بری

Juyaye javan
پنج شنبه 22 تیر 1391, 09:08 صبح
چطوري از Jquery استفاده كنم؟ و منظورتون در مورد UI چيه؟ متوجه نميشم.

Fartaj
پنج شنبه 22 تیر 1391, 13:11 عصر
سلام، من تمام اين كارها رو به ترتيب انجام دادم اما زمانيكه اجرا ميكنم با error برخورد ميكنم
حتي خود برنامه هم بهم يه warning ميده.
چطور ميتونم اين مشكلو رفع كنم؟
هشداري كه ميده اينه :
Reference to type 'System.Web.UI.CompositeScriptReferenceEventArgs' claims it is defined in 'c:\WINDOWS\assembly\GAC_MSIL\System.Web.Extension s\3.5.0.0__31bf3856ad364e35\System.Web.Extensions. dll', but it could not be found
من مسيري كه مي گفت و دنبال كردم و فهميدم كه System.Web.Extension تو مسير
c:\WINDOWS\assembly\System.Web.Extensions
هستش حالا چطور ميتونم اينو درست كنم

شما به فولدر bin یک سر بزنید ببینید toolkit به آن اضافه شده است اگر نشده به صورت add reference بهش اضافه کنید




چطوري از Jquery استفاده كنم؟ و منظورتون در مورد UI چيه؟ متوجه نميشم.

UI در واقع تو برنامه نویسی چند لایه به عنوان لایه آخر یا همون لایه اصلی سایت هستش که اگه کلا با برنامه نویسی چندلایه آشنایی نداری پیشنهاد می کنم اول بری درمورد سه لایه تحقیق کنی که اگه یه سرچ بزنی در موردش مطلب هست . برای اول کار می تونی یه سر به این سایت بزنی :
http://www.how2learnasp.net/

نکته اینکه UI همون user interface هست یعنی همون لایه ای که صفحات سایت و چیزهایی است که کاربر می بینه .



اگر در همه پروژه از Ajax Toolkit ها دارید استفاده میکنید ، خب این هم روش استفاه کنید . خیلی هم خوب .

اما اگر این تنها دلیل استفاده از Ajax Toolkit ها است به نظر من از Jquery استفاده کنید که بسی سبک تر است فقط برای یک موضوع ساده مثل این . در طراحی دیتابیس هم اگر UI را آماده کرده با JQuery برات خواهم گفت چه کنی که آسانتر و نرم تر جلو بری

مهندس جان اگه وقتش رو داشتی راجع به این موضوع توضیح بده چون برای من این مشکل هست که حجم سایت می ره بالا منتها چون با jquery زیاد آشنایی نداررم و نمی دونم چطوری باید این امتیازدهی رو با اون پیاده کنم مجبور شدم .

ali_kolahdoozan
پنج شنبه 22 تیر 1391, 13:38 عصر
دادا وقت گیرس یک ذره . قول نیمیدم . بیبینم چی میشه

Juyaye javan
پنج شنبه 22 تیر 1391, 20:07 عصر
[QUOTE=Fartaj;1546649]شما به فولدر bin یک سر بزنید ببینید toolkit به آن اضافه شده است اگر نشده به صورت add reference بهش اضافه کنید





UI در واقع تو برنامه نویسی چند لایه به عنوان لایه آخر یا همون لایه اصلی سایت هستش که اگه کلا با برنامه نویسی چندلایه آشنایی نداری پیشنهاد می کنم اول بری درمورد سه لایه تحقیق کنی که اگه یه سرچ بزنی در موردش مطلب هست . برای اول کار می تونی یه سر به این سایت بزنی :
http://www.how2learnasp.net/

نکته اینکه UI همون user interface هست یعنی همون لایه ای که صفحات سایت و چیزهایی است که کاربر می بینه .

آهان، منظور از UI، اين بود. با معماري چند لايه آشننايي دارم باز هم ممنون
و
زمانيكهAjax toolkit هارو به جعبه ابزار اضافه ميكنم تمام فايلهاي dll رو هم در پوشه Bin اضافه ميكنه
اما در زمان لود صفحه با خطاي زير مواجه ميشم.و زمانيكه با اجراي خط به خط ميرم از من مسير فايل ToolkitScriptManager.cs رو ميخواد

Could not load type 'System.Web.UI.ScriptReferenceBase' from assembly 'System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.TypeLoadException: Could not load type 'System.Web.UI.ScriptReferenceBase' from assembly 'System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.


Stack Trace:

[TypeLoadException: Could not load type 'System.Web.UI.ScriptReferenceBase' from assembly 'System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.]
AjaxControlToolkit.ToolkitScriptManager.OnResolveS criptReference(ScriptReferenceEventArgs e) in c:\Users\Stephen\Documents\Repos\Superexpert\AjaxC ontrolToolkit\Server\AjaxControlToolkit\ToolkitScr iptManager\ToolkitScriptManager.cs:276
System.Web.UI.ScriptManager.RegisterScripts() +261
System.Web.UI.ScriptManager.OnPagePreRenderComplet e(Object sender, EventArgs e) +117
System.Web.UI.Page.OnPreRenderComplete(EventArgs e) +2063008
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2247

Juyaye javan
پنج شنبه 22 تیر 1391, 20:31 عصر
من سايتم و تكميل كردم فقط همين نمره داده با ستازه مونده كه نميدونم چطوري با Jquery درست كنم؟

Fartaj
پنج شنبه 22 تیر 1391, 21:18 عصر
این ارور به نظر می رسه ایراد از web.config باشه وقتی toolkit رو به صفحه اضافه می کنی یک سری assembly به web.config اضافه می کنه احیانا اونا رو دستکاری نکردی ؟؟

Juyaye javan
جمعه 23 تیر 1391, 07:04 صبح
نه اصلا. كاري به web.config نداشتم

Juyaye javan
جمعه 23 تیر 1391, 09:21 صبح
چون وقتي نداشتم سايت رو به همون صورت آپلود كردم و خوشبختانه بعد از آپلود صفحه نمره دادن با ستاره مشكلي نداشت
بابت همه چي ممنون