0

ListView の各行にはチェックボックスがあります。ユーザーが[選択した行を削除] LinkBut​​ton をクリックすると、チェックボックスがオンになっている行のみが削除されます。最初に配列内のすべてのチェックボックスを取得してからループして、どれがチェックされたかを確認することを考えています。

これは私が試したものです。

    function CheckBoxBeforeDeleteing() {
        var lv = document.getElementById("MainContent_ListView1");
        //var inputs = lv.childNodes;
        //alert(inputs.Length);
        alert("Test");
    }

2行をコメントアウトしないと、関数は実行されません。もっと深く行く必要がありそうです。Javascript には C# のFindControlRecursiveのような機能がありますか?

4

2 に答える 2

5

以下に示すように、javascript でループを使用して、フォーム内の要素をループできます。form1ページにあると仮定してrunat="server"、フォームを取得し、ループを使用してそのコントロールを反復処理し、フォーム内のチェックボックスを見つけます。

var elem = document.getElementById('<%= form1.ClientID %>').elements;

function CheckBoxBeforeDeleteing() 
{
    for(var i = 0; i < elem.length; i++)
    {
          if(elem[i].id.indexOf('chkBoxId') != -1)
          {
               if(elem[i].checked)
               {
                     //Your code here
               }
          }   
    }
}

インデックス付きフォームへのアクセス

function CheckBoxBeforeDeleteing() 
{
    for(i=0;i<document.forms[0].length;i++)
    {
          e=document.forms[0].elements[i];
          if (e.id.indexOf("chkBoxId") != -1 )
          {
           if(e.checked)
               {    
              //Your code goes here     
               }        
          } 
    }
}
于 2012-09-01T16:16:26.663 に答える
2

はいあります。

var inputs = lv.getElementsByTagName("INPUT");
于 2012-09-01T16:20:43.523 に答える