Как вызвать функцию Javascript, когда отмечены флажки столбцов - PullRequest
0 голосов
/ 14 июля 2010

Я использую Gridclientselectcoiumn в моей Radgrid.У меня есть метка в моей команде.Когда пользователь проверяет флажок, я просто хочу показать количество флажков, выбранных в этом ярлыке.Предположим, если пользователь выбирает 4 флажка, я просто хочу показать как Выбранные записи: 4. Вот мой код для этого ......

commanditemtemplate

<td align="right" style="width: 20%">
    Selected Records:<asp:Label ID="lblselTsks" Width="20px" Font-Size="10pt" Font-Bold="true" runat="server" Text="0"></asp:Label>
</td>

Сетка выбора клиента столбца.

<telerik:GridClientSelectColumn UniqueName="ClientSelectColumn" HeaderStyle-Width="3%"
                                ItemStyle-Width="3%">
    <HeaderStyle Width="3%"></HeaderStyle>
    <ItemStyle Width="3%"></ItemStyle>
</telerik:GridClientSelectColumn>

codebehind и JS

protected void rg200_DataBound(object sender, EventArgs e)
{
    foreach (GridDataItem item in rg200.MasterTableView.Items)
    {
        CheckBox chkBoxOne = (CheckBox)item.FindControl("ClientSelectColumn");
        if (chkBoxOne != null)
            chkBoxOne.Attributes.Add("onclick", "javascript:return SelectOne('" + chkBoxOne.ClientID + "')");
    }
}

function SelectOne(id) {
    var count = 0;
    count = Number(document.getElementById('ctl00_PagePlaceholder_rg200_ctl00_ctl02_ctl00_lblselTsks').innerHTML);
    if (document.getElementById(id).checked == true) {
        if (!document.getElementById(id).disabled) {
            count = count + 1;
        }
    }
    else if (document.getElementById(id).checked == false) {
        if (!document.getElementById(id).disabled) {
            count = count - 1;
        }
    }
    document.getElementById('ctl00_PagePlaceholder_rg200_ctl00_ctl02_ctl00_lblselTsks').innerHTML = count;
}

Проблема заключается в том, что при выборе флажка, например 1 или более, количество выбранных флажков не отображается.Это всегда показывает выбранные записи: 0. Где я делаю неправильно?Как решить эту проблему.Любая помощь должна быть оценена.

1 Ответ

0 голосов
/ 22 июля 2010

С помощью такого инструмента, как Firebug, вы убедились, что ваша функция SelectOne вызывается при установке флажков?Это будет первый шаг.

Шаг второй, если функция вызывается, пройдитесь по вашему JS (опять же, с помощью такого инструмента, как Firebug) и убедитесь, что ваш счетчик увеличивается правильно.

Нет ничего плохого в вашем коде.Вы рассматривали возможность использования jQuery?Это может немного упростить ваш код и облегчить его подготовку.Вместо document.getElementById(id) вы можете просто использовать $(id).

И если вы не делаете что-то со своей меткой на стороне сервера, вы можете заменить asp: Label простым HTML <span> или <div> а затем установите намного более чистый идентификатор клиента.Например:

<span id="spanCounter" style="width:20px;font-weight:bold;"></span>

А затем в коде вы можете уменьшить "ctl00_PagePlaceholder ..." до:

$("#spanCounter").html(counter); //Sets the HTML content using jQuery

Надеюсь, что поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...