2

コード ビハインドで HTML テーブルを作成し、それを ASPX ページのパネル コントロールに追加しました。

今、テーブルソーターを実装するために、javascript でその ID を使用してテーブルを取得したいと考えています。

   $(document).ready(function () {
        $("myTable").tablesorter();
    });  

Codebehind で作成した mytable コントロールを識別していません。

       HtmlTable Table= new HtmlTable();        
       Table.ID = "NavTable";

多くの方法を試してみましたが、何も機能していません。

前もって感謝します

4

3 に答える 3

2

いくつかの選択肢があります。基本的な考え方は、目的のコントロールの ClientID を見つけられる場所に出力することです。

例えば:

$(document).ready(function () {
    $("#<%=this.TableControl.ClientID%>").tablesorter();
}); 

または: ASP.NET 4.5 環境を使用している場合は、ClientIDMode="Static" を設定し、スクリプトに直接ハードコードするだけです。ただし、ID の競合を導入すると、ASP.NET が手首を平手打ちすることに注意してください。

<asp:Grid ClientIDMode="Static" ID="my_static_table_id" />
$(document).ready(function () {
    $("#my_static_table_id").tablesorter();
}); 
于 2013-02-25T06:42:26.663 に答える
1

あなたの例には、異なる idmyTableとが含まれていますNavTable。IDで選択したい場合は、間違ったセレクターを使用しています。セレクターは次のようにする必要があります。

$("#NavTable").tablesorter();

それで、セレクターの値にシャープを忘れました。

于 2013-02-25T06:41:37.653 に答える
1

ここにはいくつかの問題があります。

  1. JavaScript から「myTable」を参照しようとして、「NavTable」という名前を付けました。

  2. jQuery で id によって html 要素を参照するに#は、セレクターが html タグ名ではなく ID であることを jQuery に伝えるために、先頭に が必要です。

  3. ASP.NET が HTML 出力で別の ID を使用しないようにするにはClientID、C# で作成した ASP.NET サーバー側オブジェクトから値を取得する必要があります (ASP.NET ユーザー コントロール内で宣言されている場合に発生する可能性があります)。 )。

コードは次のようになります。

$(document).ready(function () {
    $("#<%=Table.ClientID%>").tablesorter();
});

このためには、変数をクラスのメンバーとして宣言する必要もありますTable。これにより、設計コードがスコープ内で変数を認識できるようになります。それ以外の場合、これは作成したメソッド内でのみアクセスできます。

これにより、割り当てた実際の ID が常に生成されることがわかっている場合は、次のように JavaScript でハードコーディングできます。

$(document).ready(function () {
    $("#NavTable").tablesorter();
});
于 2013-02-25T06:43:28.053 に答える