我是C#和.NET的新手,但现在已经坚持了几天,我正在使用MVC 3(.NET 4.0)Web应用程序。
我查看了教程,使用以下代码制作了一个基于SqlDataSource的GridView:
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
OnPageIndexChanging = "GridView1_PageIndexChanging"
AutoGenerateColumns="False" DataKeyNames="LastName,FirstName"
EnablePersistedSelection="True" SelectedRowStyle-BackColor="Yellow"
DataSourceID="SqlDataSource1" AllowSorting="True" >
<Columns>
<asp:BoundField DataField="LastName" HeaderText="Last Name" ReadOnly="True" SortExpression="LastName" />
<asp:BoundField DataField="FirstName" HeaderText="First Name" ReadOnly="True" SortExpression="FirstName" />
...
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ApplicationServices %>"
SelectCommand="SELECT * FROM User WHERE [IsDeleted]=0"></asp:SqlDataSource>
然而,当我点击不同的页面时,没有任何反应(看起来它重新加载了相同的页面),但当我在Chrome中的新标签页中打开时,它只是在我将鼠标悬停在链接上时打开一个空白页面“2”转到第2页,这就是显示:
javascript:__doPostBack('ctl00$MainContent$GridView1','Page$2')
当我点击标题进行排序时,没有任何事情像页面一样发生,链接说明了这一点:
javascript:__doPostBack('ctl00$MainContent$GridView1','Sort$WindowsUsername')
我也尝试过将aspx文件置于其中:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.master" Inherits="..." %>
<script runat="server">
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}
</script>
同样的问题。单击其他页面时,甚至不会调用此函数
我错过了什么地方吗?任何帮助赞赏!
答案 0 :(得分:0)
您必须在.aspx中为OnPageIndexChanging
指定您没有的事件。它应该是:
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
OnPageIndexChanging = "GridView1_PageIndexChanging"
AutoGenerateColumns="False" DataKeyNames="LastName,FirstName"
EnablePersistedSelection="True" SelectedRowStyle-BackColor="Yellow"
DataSourceID="SqlDataSource1" AllowSorting="True">