ajax工具包 - 评级控制 - 想要显示当前评级&允许人们选择那个价值

时间:2012-01-29 22:25:51

标签: asp.net-ajax rating-system

我正在尝试使用ajax工具包中的评级控件。我目前正在将当前设置设置为该项目的平均评级。但是,这意味着没有人可以选择这个价值。例如 - 如果当前评级为3,那么没有人能够选择3。

我在stackoverflow上发现了这个帖子,问了同样的问题: Ajax control toolkit Rating Control- Override RatingBehavior.js

但是我没有运气这么做。我猜是因为它是一个旧帖子,大约3岁,从那以后,随着评级控制的事情发生了变化。

所以 - 任何人都知道如何显示当前的评级并仍然允许提交该值?

由于

1 个答案:

答案 0 :(得分:0)

我希望你找到了解决这个问题的方法,以防万一你不在这里:

  1. 将隐藏字段添加到评级控件所在的页面/用户控件,例如。

  2. 将以下脚本块添加到页面/用户控件:

    var ratingID =“”; //评级控件的客户端ID var ratingClientID =“”; //评级控件的唯一ID var hfAverageRatingID =“”; //隐藏字段ID
  3. 将以下代码添加到外部js文件,然后在ScriptManagerProxy或ToolScriptManager控件中引用它:

    var rating;

    Sys.Application.add_load(function(){     $(“。ratingStars a”)。click(function(){         var avgValue = $(“#”+ hfAverageRatingID).val();         var ratingValue = $ find(“RatingCtrl_RatingExtender”)。get_Rating();         //我们只想在平均评分= =所选评级时运行自定义代码         if(ratingValue == avgValue){             if((ratingValue< 0)||(ratingValue> rating._maxRatingValue)){                 返回;             }             rating._update();             Sys.Extended.UI.RatingBehavior.callBaseMethod(rating,'set_ClientState',[rating._ratingValue]);             rating.raisePropertyChanged( '评分');             rating.raiseRated(rating._currentRating);             rating._waitingMode(真);             var args = rating._currentRating +“;” + rating._tag;             var id = rating._callbackID; //唯一ID - ctl00 $ cphMainContainer $ bjxRatings1 $ pageRating             if(rating._autoPostBack){                 __doPostBack(id,args);             }             其他{                 WebForm_DoCallback(id,args,rating._receiveServerData,rating,rating._onError,true)             }         }     });     $ create(Sys.Extended.UI.RatingBehavior,{“AutoPostBack”:true,“CallbackID”:ratingClientID,“ClientStateFieldID”:“RatingCtrl_RatingExtender_ClientState”,“id”:“RatingCtrl_RatingExtender”},null,null,$ get(ratingID) );     rating = $ find(“RatingCtrl_RatingExtender”); });

  4. 有些值得注意的是,您发布的链接已经过时了,而较新的ajaxToolkit库则无法在javascript中从“AjaxControlToolkit”中引用它。相反,你必须在js文件中使用'Sys.Extended.UI'。

    祝你好运, 肖恩