2010-07-14 5 views
0

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

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> 

отделенный код и 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. Где я делаю неправильно? Как решить эту проблему. Любая помощь должна быть оценена.

ответ

0

Вы проверили с помощью инструмента, такого как 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 

Надежда, что помогает.

Смежные вопросы