использовать javascript для отображения метки, когда в репитере asp.net установлен флажок - PullRequest
0 голосов
/ 27 сентября 2011

У меня есть ретранслятор asp.net, в котором 4 столбца заполнены набором данных, полученным с сервера sql.В одном из полей есть флажок, а все остальные - метки.одно поле называется «тип».Каждая запись будет одного из двух типов.То, что я хотел бы сделать, это использовать JavaScript, чтобы проверить, если флажок установлен, и если это так, отобразить счетчик для «типа» в текстовом поле.например, было бы два текстовых поля, одно из которых отображало бы «тип 1 имеет 3 проверенных», а другое отображало бы «тип 2 имеет 3 проверенных».В настоящее время у меня есть функция Javascript (см. Ниже), которая подсчитывает все отмеченные флажки и отображает счетчик в текстовом поле, но я хотел бы иметь возможность отслеживать счетчик для каждого типа.Есть ли способ в javascript, я могу захватить тип при проверке, если флажок установлен.

JavaScript

function checkrpt() {
    var inputs = document.getElementsByTagName('input');
    var count = 0

    for (var i = 0; i < inputs.length; i++) {

        if (inputs[i].type == "checkbox") {
            if (inputs[i].checked == true)

                    count += 1;
            }
            if (count > 6) {
                inputs[i].checked = false;
            }
        }

    if (count > 0) {
        document.getElementById('txtSelectionStatus').value = count + ' items have been selected';
    } else {
        document.getElementById('txtSelectionStatus').value = 'No items have been selected';
    }
    if (count > 6) {
        document.getElementById('txtSelectionStatus').value = 'You can only select 6 itmes';
    }
}

ASP: Repeater

 <asp:repeater id="rptStep1Data" runat="server">
   <HeaderTemplate>
     <table width="100%" border="1" cellpadding="0" cellspacing="0">
       <tr style="backgound-color:#DDDDDD;">
         <td width="150px" align="center" class="tableheader"><b>Add To Grid</b></td>
         <td width="100px" class="tableheader" align="center"><b>Distance</b></td>
         <td width="400px" align="left" class="tableheader"><b>Address</b></td>
         <td width="100px" align="center" class="tableheader"><b>Type</b></td>
       </tr>
       <tr>
         <td colspan="4">
           <div style="overflow:scroll; overflow-x:hidden; height: 300px; width: 100%">
             <table width="100%" border="1" cellpadding="0" cellspacing="0">
   </HeaderTemplate>
   <ITEMTEMPLATE>
               <tr>
                 <td  width="148px" align="center" class="content">
                   <asp:checkbox id="chkSelected" runat="server" onClick="javascript:checkrpt()" Checked='<%# makeChecked(Container.DataItem("Selected")) %>' />
                 </td>
                 <td width="100px" align="center" class="content">
                   <asp:label id="lblDistance" runat="server" Text='<%# Container.DataItem("Distance") %>' />                                                    
                 </td>
                 <td width="390px" align="left" style="padding-left:10px" class="content">                                                    
                   <asp:label id="lblAddress" runat="server" Text='<%# Container.DataItem("Address") %>' />                                                    
                 </td>
                 <td width="100px" align="center" class="content">                                                    
                   <asp:label id="lblType" runat="server" Text='<%# Container.DataItem("Type") %>' />                                                    
                 </td>
               </tr>
   </ITEMTEMPLATE>
   <ALTERNATINGITEMTEMPLATE>
               <tr>
                 <td align="center" class="content">
                   <asp:checkbox id="chkSelected" runat="server" onClick="javascript:checkrpt()" Checked='<%# makeChecked(Container.DataItem("Selected")) %>' />
                 </td>
                 <td align="center" class="content">                                                    
                   <asp:label id="lblDistance" runat="server" Text='<%# Container.DataItem("Distance") %>' />                                                    
                 </td>
                 <td align="left" style="padding-left:10px" class="content">                                                    
                   <asp:label id="lblAddress" runat="server" Text='<%# Container.DataItem("Address") %>' />                                                    
                 </td>
                 <td align="center" class="content">                                                    
                   <asp:label id="lblGLA" runat="server" Text='<%# Container.DataItem("Type") %>' />                                                    
                 </td>
               </tr>
   </ALTERNATINGITEMTEMPLATE>
   <FooterTemplate>
             </table>
           </div>
         </td>
       </tr>
     </table>
   </FooterTemplate>
 </asp:repeater>

1 Ответ

0 голосов
/ 27 сентября 2011

Попробуйте использовать onClientClick= "checkrpt()" вместо onClick событие checkbox.onClientClick запускает код JavaScript на стороне клиента.

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