обработка нескольких элементов управления рейтингом ajaxtoolkit BehaviorID на одной странице

У меня есть веб-форма, которая динамически загружает в нее пользовательский веб-элемент управления. В элементе управления веб-пользователя есть элемент управления повторителем, а в элементе управления повторителем у меня есть элемент управления рейтингом ajaxtoolkit для каждого повторяющегося элемента, и элемент управления веб-пользователя может динамически создаваться внутри себя столько раз, сколько необходимо. Чтобы обработать выбранный рейтинг, я должен использовать 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, а также сценарий для каждого, поскольку мне нужны эти элементы для каждого элемента управления рейтингом?


person mattgcon    schedule 28.08.2011    source источник


Ответы (1)


Это было достигнуто путем выполнения следующих действий:

    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();
person mattgcon    schedule 28.08.2011