繁体   English   中英

在单个页面上处理多个ajaxtoolkit评级控件BehaviorID

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM