2011-09-27 7 views
0

SQL Server에서 가져온 데이터 집합으로 채워진 4 개의 열이있는 asp.net repeater가 있습니다. 필드 중 하나에는 확인란이 있고 다른 모든 필드에는 레이블이 있습니다. 한 필드를 "유형"이라고합니다. 각 레코드는 두 가지 유형 중 하나입니다. 내가 뭘하고 싶은지 자바 스크립트를 사용하여 확인란이 선택되어 있는지 확인하고 그렇다면 텍스트 상자에 "유형"에 대한 개수를 표시합니다. 예를 들어 "type 1 has 3 checked"라는 표시와 "type 2 has 3 checked"라는 표시가있는 두 개의 텍스트 상자가 있습니다. 현재 자바 스크립트 함수 (아래 참조)는 체크 된 모든 체크 박스를 계산하고 텍스트 상자에 카운트를 표시하지만 각 유형의 카운트를 추적 할 수 있기를 원합니다. javascript에 어떤 방법이 있어도 확인란을 선택하면 해당 형식을 캡처 할 수 있습니다.asp.net 중계기에서 확인란을 선택하면 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 : 리피터

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

답변

0

checkboxonClientClick= "checkrpt()" 대신 onClick의 이벤트를 사용해보십시오. onClientClick은 클라이언트 측 javascript 코드를 실행합니다.

관련 문제