2012-01-29 49 views
1

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

我发现这个职位上的计算器问同样的问题: Ajax control toolkit Rating Control- Override RatingBehavior.js

但我没有任何运气得到那工作。我猜是因为这是一个3岁左右的旧帖子,从那时起,随着评级控制,事情发生了变化。

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

感谢

回答

0

我希望你已经找到了解决这个问题,以防万一你没有在这里它是:

  1. 一个隐藏字段添加到页面/用户控制,其中评级控制是,例如。

  2. 下面的脚本块添加到页/用户控制:

    VAR ratingID = “”; //评级控制的客户ID var ratingClientID =“”; //评级控制的唯一ID var hfAverageRatingID =“”; //隐藏域ID
  3. 添加下面的代码到一个外部js文件,然后在您的ScriptManagerProxy或ToolScriptManager控制引用它:

    VAR等级;

    Sys.Application.add_load(函数(){ $( “ratingStars一个 ”)点击(函数(){ VAR AvgValue中= $(“ #” + hfAverageRatingID).VAL(); 变种ratingValue = $ find(“RatingCtrl_RatingExtender”)。get_Rating(); //我们只想运行自定义代码时的平均评级==选择的评级 if(ratingValue == avgValue){ if((ratingValue < 0)| |(ratingValue> rating._maxRatingValue)){ 回报; } rating._update(); Sys.Extended.UI.RatingBehavior.callBaseMethod(评级, 'set_ClientState',[rating._ratingValue]); rating.raisePropertyChanged('Rating'); rating.raiseRated(rating._currentRating); rating._waitingMode(true); var args = rating._currentRating +“;” + rating._tag; var id = rating._callbackID; // unique id - ctl00 $ cphMainContainer $ bjxRatings1 $ pageRating if(rating._autoPostBack){ __doPostBack(id,args); } else { 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”); });

一些有趣的注意的是,您发布的链接已过时代码,你不能在JavaScript中引用它从“AjaxControlToolkit”的新ajaxToolkit库。相反,您必须在js文件中使用'Sys.Extended.UI'。

祝你好运, 肖恩

+0

我没有找到一个解决方案 - 但现在我已经暂时搁置该项目,所以还没有真正触及它最近。去标记这是答案,因为它听起来像可能工作,没有人回答;) – merk 2012-05-28 09:48:24

+0

嗨Merk,如果你有任何问题,当你试图让这个工作随时联系我。 总体思路是,您要听取评级控制点击事件,并且只有当用户选择的值等于平均值​​(例如3)时才会手动提交回传。否则,你什么也不做,并让评级控制通常会提高它的回传。 – pharophy 2012-05-31 19:42:55