2

私はjquery tablesorterを使用していますが、動作していないようです。私はそれを他のソリューションで動作させましたが、HTML5 プロジェクト内で複製することはできません。

次のコードは、マスター ページのヘッダー内にあります。

<script type="text/javascript" src="TableSorter/jquery-latest.js"></script>
<script type="text/javascript" src="TableSorter/jquery.tablesorter.js"></script>
<script type="text/javascript" src="TableSorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="TableSorter/jquery.metadata.js"></script>
<script type="text/javascript" src="TableSorter/jquery.tablesorter.pager.js" ></script>

マスター ページにも、Jquery を配置しました。テーブルは「ctl00_ContentPlaceHolder1_memberTable」という名前でその場で作成されます

<script type="text/javascript">
    $(document).ready(function () {
        $("#ctl00_ContentPlaceHolder1_memberTable").tablesorter();
    });
</script>

フロントエンドコード:

<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/SSASWeb.Master"
    CodeBehind="MemberList.aspx.vb" Inherits="SSASWeb_HTML5.MemberList" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <h2>
        Member List
    </h2>
    <div id="table" runat="server" style="margin-right: 50px" class="tablesorter">
    </div>
</asp:Content>

テーブルに入力するコード:

Dim ScriptManager As ClientScriptManager = Page.ClientScript
        Dim t As Table = HtmlHelper.ConvertToHtmlTable(ds.Tables(0))
        Dim i As Integer = 0
        For Each row As TableRow In t.Rows
          If i = 0 Then
            i = i + 1
            Continue For
          End If
          Dim strMemNo As String = row.Cells(0).Text
          row.Cells(0).Text = ""
          Dim a As New HtmlAnchor()
          a.HRef = "NameAndAddress.aspx?member=" + strMemNo
          a.InnerText = strMemNo
          row.Cells(0).Controls.Add(a)
        Next
        t.ID = "memberTable"
        table.Controls.Add(t)

バックエンドコードからの呼び出し内で呼び出している関数:

Public Shared Function ConvertToHtmlTable(dt As DataTable) As Table
    Dim table As New Table()
    table.CssClass = "hovered tablesorter"
    Dim tHead As New TableRow()
    tHead.TableSection = TableRowSection.TableHeader
    For Each col As DataColumn In dt.Columns
      Dim cell As New TableCell()
      cell.Text = col.ColumnName
      tHead.Cells.Add(cell)
    Next
    table.Rows.Add(tHead)
    For Each row As DataRow In dt.Rows
      Dim tBodyRow As New TableRow()
      tBodyRow.TableSection = TableRowSection.TableBody
      For Each cell In row.ItemArray
        Dim rowCell As New TableCell()
        If Not IsDBNull(cell) Then
          Dim dtValue As DateTime
          If DateTime.TryParse(cell, dtValue) Then
            rowCell.Text = dtValue.ToShortDateString()
          Else
            rowCell.Text = cell
          End If
        End If
        tBodyRow.Cells.Add(rowCell)
      Next
      table.Rows.Add(tBodyRow)
    Next
    Return table
  End Function

これを実行してヘッダーをクリックしても何も起こりませんが、どこが間違っているのかわかりません。

ありがとう!

4

1 に答える 1

0

うーん、私には 2 つの考えられる理由があります。

1º 使用しないでください:

<script type="text/javascript" src="TableSorter/jquery.tablesorter.js"></script>

<script type="text/javascript" src="TableSorter/jquery.tablesorter.min.js"></script>

同時に、1 つだけを選択します。

2º 使えるかもしれません

$("[id$=memberTable]").tablesorter();
于 2013-04-11T14:15:19.193 に答える