2017-01-20 39 views
0

我相信你已經厭倦了這個錯誤,但我無法弄清楚我的問題是在看別人的類似問題。 這是所有與gridview凍結窗格。我有一個非常基本的Web應用程序,基本上顯示了一個GridView(並且還具有自定義分頁功能)。Gridview凍結窗格Jscript運行時錯誤

我已經使用這個網站,試圖合併列凍結在我的GridView當你在頁面上滾動的,使用本網站: http://gridviewscroll.aspcity.idv.tw/Demo.aspx

這是我得到的錯誤: 微軟JScript運行錯誤:對象不支持此屬性或方法

,它凸顯了錯誤下面的代碼:

function gridviewScroll() { 
      $('#<%=gvOpportunity.ClientID%>').gridviewScroll({ 

      }); 
     } 

這裏是我完整的代碼,但不包括GR idview本身(否則這篇文章將是巨大的):

PageSize: 
<asp:DropDownList ID="ddlPageSize" runat="server" AutoPostBack="true" OnSelectedIndexChanged="PageSize_Changed"> 
<asp:ListItem Text="10" Value="10" /> 
<asp:ListItem Text="25" Value="25" /> 
<asp:ListItem Text="50" Value="50" /> 
<asp:ListItem Text="100" Value="100" /> 

<asp:GridView ID="gvOpportunity" runat="server" DataKeyNames="ID" AutoGenerateColumns="False" EmptyDataText="There are no data records to display." 
    OnRowUpdating="OnRowUpdating" OnRowEditing="OnRowEditing" OnRowCancelingEdit="OnRowCancelingEdit" 
    BorderWidth="0px" CellSpacing="1" CellPadding="1" GridLines="Horizontal" > 
     <Columns> 

     <asp:TemplateField HeaderText="No." > 
       <HeaderStyle Width="50px" HorizontalAlign="Center" /> 
       <ItemStyle Width="50px" HorizontalAlign="Center" /> 
       <ItemTemplate> 
        <asp:Label ID="lbRowNumber" runat="server" Text='<%# Container.DataItemIndex + 1 %>'></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 

      ...............more template fields........................... 

     </Columns> 

     <HeaderStyle CssClass="GridviewScrollC1Header" /> 
     <RowStyle CssClass="GridviewScrollC1Item" /> 

    </asp:GridView> 

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script> 
    <script type="text/javascript" src="~/Scripts/gridviewScroll.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      gridviewScroll(); 
     }); 


     function gridviewScroll() { 
      $('#<%=gvOpportunity.ClientID%>').gridviewScroll({ 
       freesize: 2 
      }); 
     } 
    </script> 




    <asp:Repeater ID="rptPager" runat="server"> 
     <ItemTemplate> 
      <asp:LinkButton ID="lnkPage" runat="server" Text='<%#Eval("Text") %>' CommandArgument='<%# Eval("Value") %>' 
       Enabled='<%# Eval("Enabled") %>' OnClick="Page_Changed"></asp:LinkButton> 
     </ItemTemplate> 
    </asp:Repeater> 

</div> 

我不知道下一步怎麼辦,並試圖尋找同樣的錯誤,並已無法調整解決方案。我很感謝您可以在此給予的任何幫助,如果您需要更多信息,請告訴我。

+0

Bumping - no reply! – Bany

回答

0

我扔在一起我自己的最小的例子,它的工作。我用v0.9.6.8從https://github.com/twlikol/GridViewScroll/blob/master/gridviewScroll.min.js

我安裝了IE11。使用「文件模式」下拉菜單,它模仿舊版本中,我向後退了幾步通過IE的悲慘歷史,它一直在所有模式下工作,除了大小不關斷模式5.

你拼錯freezesizefreesize但這不會導致一個JavaScript錯誤。

頁:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Test.WebForm1" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 

    <asp:GridView ID="gvOpportunity" runat="server" DataKeyNames="ID" AutoGenerateColumns="False"> 
     <Columns> 

     <asp:TemplateField HeaderText="No." > 
       <HeaderStyle Width="150px" HorizontalAlign="Center" /> 
       <ItemStyle Width="150px" HorizontalAlign="Center" /> 
       <ItemTemplate> 
        <%# Container.DataItemIndex + 1 %> 
       </ItemTemplate> 
      </asp:TemplateField> 

      <asp:TemplateField HeaderText="Foo." > 
       <HeaderStyle Width="250px" HorizontalAlign="Center" /> 
       <ItemStyle Width="250px" HorizontalAlign="Center" /> 
       <ItemTemplate> 
        FOOBAR FOOBAR FOOBAR 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Bar." > 
       <HeaderStyle Width="350px" HorizontalAlign="Center" /> 
       <ItemStyle Width="350px" HorizontalAlign="Center" /> 
       <ItemTemplate> 
        lorem ipsum blah lah blah lorem ipsum blah lah blah lorem ipsum blah lah blah lorem ipsum blah lah blah lorem ipsum blah lah blah lorem ipsum blah lah blah lorem ipsum blah lah blah lorem ipsum blah lah blah 
       </ItemTemplate> 
      </asp:TemplateField> 

     </Columns> 
    </asp:GridView> 

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script> 
    <script type="text/javascript" src="gridviewScroll.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      gridviewScroll(); 
     }); 

     function gridviewScroll() { 
      $('#<%=gvOpportunity.ClientID%>').gridviewScroll({ 
       width: 660, 
       height: 200, 
       freezesize: 2 
      }); 
     } 
    </script> 

    </form> 
</body> 
</html> 

代碼隱藏:

using System; 

namespace Test 
{ 
    public partial class WebForm1 : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      gvOpportunity.DataSource = new[] { 
       new { ID=1,Value="First" }, 
       new { ID=2,Value="Second" }, 
       new { ID=3,Value="Third" }, 
       new { ID=4,Value="Fourth" } 
      }; 
      gvOpportunity.DataBind(); 
     } 
    } 
} 

你已經有了分頁控件回發事件;如果您使用更新面板進行部分回發,您需要重新運行更新面板內的任何更改腳本的腳本。

var doStuff = function(){ 
    //UI enhancements here... 
}; 
//Shorthand for $(document).ready(doStuff); 
$(doStuff); 
//trigger the function again when an UpdatePanel finishes replacing its contents 
var prm = Sys.WebForms.PageRequestManager.getInstance(); 
    prm.add_endRequest(doStuff); 
相關問題