我正在尝试使用ajax工具包中的评级控件。我目前正在将当前设置设置为该项目的平均评级。但是,这意味着没有人可以选择这个价值。例如 - 如果当前评级为3,那么没有人能够选择3。
我在stackoverflow上发现了这个帖子,问了同样的问题: Ajax control toolkit Rating Control- Override RatingBehavior.js
但是我没有运气这么做。我猜是因为它是一个旧帖子,大约3岁,从那以后,随着评级控制的事情发生了变化。
所以 - 任何人都知道如何显示当前的评级并仍然允许提交该值?
由于
答案 0 :(得分:0)
我希望你找到了解决这个问题的方法,以防万一你不在这里:
将隐藏字段添加到评级控件所在的页面/用户控件,例如。
将以下脚本块添加到页面/用户控件:
var ratingID =“”; //评级控件的客户端ID var ratingClientID =“”; //评级控件的唯一ID var hfAverageRatingID =“”; //隐藏字段ID将以下代码添加到外部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”); });
有些值得注意的是,您发布的链接已经过时了,而较新的ajaxToolkit库则无法在javascript中从“AjaxControlToolkit”中引用它。相反,你必须在js文件中使用'Sys.Extended.UI'。
祝你好运, 肖恩