1

C# を介して動的に作成されるテーブルがあります。これで、クリックするたびにテーブルをループする単純なクライアント側チェックボックスができました。現在、JavaScriptを使用してテーブルをループしようとすると問題が発生していますが、テーブルのループを処理できると思います。

これまでのところ、チェックボックスがあります:

次に、テーブルをループする関数があります

<script>
    function LoopThroughTable() {
        var chkState = document.getElementById("chkSelectAll");
        alert(document.getElementById("fileTablePersonal").rows.length);

        if (chkState.checked) {
            alert("Loop through table");
        } else {
            alert("Loop through table again");
        }
     }
</script>

現時点での私の主な問題は、JavaScript を使用して数または行または列を警告できないことです。rows.length を使用していますが、うまくいかないようです

どんな助けでも素晴らしいでしょう

編集: 私のテーブルは Asp.Net を使用して作成されます

4

3 に答える 3

0

リピーター/リスト ビュー タイプのデータ コントローラー内で使用していない場合は、サーバー コントロールでClientIdMode = "static"を使用できます 。

<asp:Table ID="fileTablePersonal" runat="server" ClientIDMode="static">
    <asp:TableRow>
    </asp:TableRow>
    <asp:TableRow>
    </asp:TableRow>
</asp:Table>

alert(document.getElementById("fileTablePersonal").rows.length);
于 2013-10-08T09:34:59.193 に答える
0

Since you are using master page, you cannot access elements using their actual ids but their ClientId

Suppose you have a asp.net table as is your case

<asp:Table ID="tblTable" runat="server">
    <asp:TableRow>
    </asp:TableRow>
    <asp:TableRow>
    </asp:TableRow>
</asp:Table>

In your page simply declare the below script

<script>
    var tblTable = '<%=tblTable.ClientID %>';
</script>

Now you can access your table using the keyword tblTable like as below

alert(document.getElementById(tblTable).rows.length);

Hope it helps....

于 2013-10-08T08:19:50.000 に答える