1

gridview.Dataを使用しようとしていますjquerydatatable pluginが、gridview でデータがバインドされていますが、何らかの理由でプラグインが機能していません

正確な理由を見つけることができませんでしたが、コンソールに次のようなエラーが表示されます。使用したスクリプトに問題があるのでしょうか、それともコーディング部分に問題があるのでしょうか?

TypeError: $(...).dataTable is not a function
Source File: http://localhost:3852/YouthPossibilities/jqDatatable.aspx

Heresは私が使用した私のスクリプトです

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.dataTables.js" ></script>
<script type="text/javascript" src="js/jquery.js" ></script>
<link href="css/demo_table.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" charset="utf-8">
    $(document).ready(function() {
        $('#gdView').dataTable();           
    })
</script>

ここにaspxコードがあります

 <asp:GridView ID="gdView" runat="server" AutoGenerateColumns="False" OnPreRender="gdView_PreRender">
        <Columns>
            <asp:TemplateField HeaderText="FirstName">
                <ItemTemplate >
                    <asp:Label ID="lblFstName" runat="server" Text='<%# Bind("FirstName") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="LastName">
                <ItemTemplate>
                    <asp:Label ID="lblLstName" runat="server" Text='<%# Bind("LastName") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Organization">
                <ItemTemplate>
                    <asp:Label ID="lblOrg" runat="server" Text='<%# Bind("Organization") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>            
    </asp:GridView>

グリッドビューをバインドするための私のC#コードは次のとおりです

    List<gdViewBAL> lstgdviewBAL = new List<gdViewBAL>();
    gdViewDAL clsgdViewDAL = new gdViewDAL();
    DataTable dt = clsgdViewDAL.GetData();
    if (dt.Rows.Count > 0)
    {
        foreach (DataRow dRow in dt.Rows)
        {
            gdViewBAL clsgdviewBAL = new gdViewBAL();
            clsgdviewBAL.Cellphone = dRow["CellPhone"].ToString();
            clsgdviewBAL.Email = dRow["Email"].ToString();
            clsgdviewBAL.Firstname = dRow["FirstName"].ToString();
            clsgdviewBAL.Lastname = dRow["LastName"].ToString();
            clsgdviewBAL.Organization = dRow["Organization"].ToString();
            clsgdviewBAL.State1 = dRow["State1"].ToString();
            clsgdviewBAL.Zip1 = dRow["Zip1"].ToString();
            lstgdviewBAL.Add(clsgdviewBAL);
        }
        gdView.DataSource = lstgdviewBAL;
        gdView.DataBind();
        gdView.UseAccessibleHeader = true;
        gdView.HeaderRow.TableSection = TableRowSection.TableHeader;
        gdView.FooterRow.TableSection = TableRowSection.TableFooter;
4

1 に答える 1

1

その理由は、JavaScript で ASP .NET によって生成された ID を使用しているためです。ASP .NET が ID に情報を追加するため、これは機能しません。これを行うには、ClientIDMode="Static"属性を追加して余分な情報を追加しないように ASP .NET に指示する必要があります。

これを試して:

<asp:GridView ID="gdView" runat="server" AutoGenerateColumns="False" OnPreRender="gdView_PreRender" ClientIDMode="Static">
于 2013-03-20T06:59:59.383 に答える