[英]How create an AjaxToolKit control, (rating), from code-behind in C#?
[英]handling multiple ajaxtoolkit rating control BehaviorID's on a single page
我有一个Webform,可以在其中动态加载Web用户控件。 Web用户控件中有一个转发器控件,而在转发器控件中,我有一个针对每个重复项的ajaxtoolkit评分控件,并且Web用户控件可以根据需要在自身内部动态创建多次。 要处理选定的评分,我必须将BehaviorID与以下代码一起使用:
<script type="text/javascript">
function pageLoad() { $find("ratingControlBehavior").add_EndClientCallback(onClientCallBack); }
function onClientCallBack(sender, eventArgs) {
var htmlname = sender._callbackID.substring(0, sender._callbackID.lastIndexOf('$')) + '_hdrating';
htmlname = htmlname.replace(/\$/g, '_')
var hdctl = document.getElementById(htmlname);
hdctl.value = eventArgs.get_CallbackResult();
}
</script>
问题是,当一次在窗体上出现多个评级控件时,只有第一个评级控件起作用,而其他评级被禁用。 如果我取出BehaviorID,则一切正常。
我的问题是,由于每个评分控件都需要这些项目,我该如何为多个BehaviorID和每个脚本编写代码?
这是通过执行以下操作来完成的:
String scriptText = "";
scriptText += "function pageLoad(){";
foreach ( group.category.point item in tpnts )
{ scriptText += " $find('ratingControlBehavior" + item.eval_id + "').add_EndClientCallback(onClientCallBack);"; }
scriptText += "}";
ClientScriptManager csm = ClientScript;
csm.RegisterStartupScript(this.GetType(), "scriptonload", scriptText, true);
并在repeating_ItemDataBound中
rating.BehaviorID = "ratingControlBehavior" + pnt.eval_id.ToString();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.