Gridview冻结窗格Jscript运行时错误
问题描述:
我相信你已经厌倦了这个错误,但我无法弄清楚我的问题是在看别人的类似问题。 这是所有与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>
我不知道下一步怎么办,并试图寻找同样的错误,并已无法调整解决方案。我很感谢您可以在此给予的任何帮助,如果您需要更多信息,请告诉我。
答
我扔在一起我自己的最小的例子,它的工作。我用v0.9.6.8从https://github.com/twlikol/GridViewScroll/blob/master/gridviewScroll.min.js
我安装了IE11。使用“文件模式”下拉菜单,它模仿旧版本中,我向后退了几步通过IE的悲惨历史,它一直在所有模式下工作,除了大小不关断模式5.
你拼错freezesize
为freesize
但这不会导致一个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);
Bumping - no reply! – Bany