私は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
これを実行してヘッダーをクリックしても何も起こりませんが、どこが間違っているのかわかりません。
ありがとう!