управление несколькими ajaxtoolkit рейтингом контроля BehaviorID на одной странице - PullRequest
1 голос
/ 28 августа 2011

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

1 Ответ

0 голосов
/ 28 августа 2011

Это было достигнуто следующим образом:

    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);

и в пределах repeat_ItemDataBound

        rating.BehaviorID = "ratingControlBehavior" + pnt.eval_id.ToString();
...