ASP.NET Gridview排序不起作用
我正在尝试使用asp.net在web应用程序上实现gridview。我遇到了一个问题,当涉及到排序我的数据网格,通过一种方法-我想征求意见。这是我的.aspx文件:ASP.NET Gridview排序不起作用,asp.net,sorting,gridview,Asp.net,Sorting,Gridview,我正在尝试使用asp.net在web应用程序上实现gridview。我遇到了一个问题,当涉及到排序我的数据网格,通过一种方法-我想征求意见。这是我的.aspx文件: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Employee.aspx.cs" Inherits="GridViewDemo1.Employee" %> <!DOCTYPE html> <html xmlns="http://w
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Employee.aspx.cs" Inherits="GridViewDemo1.Employee" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView
ID="grvEmployee"
runat="server"
AutoGenerateColumns="true"
BackColor="AliceBlue"
ForeColor="Goldenrod"
BorderColor="YellowGreen"
BorderStyle="Groove"
Width="70%"
CellPadding="3"
CellSpacing="2"
AllowSorting="True"
OnSorting="GridView1_Sorting"
AutoGenerateEditButton="true"
AutoGenerateDeleteButton="true" ViewStateMode="Enabled">
<RowStyle
HorizontalAlign="Center">
</RowStyle>
<FooterStyle
ForeColor="#8C4510"
BackColor="#F7DFB5">
</FooterStyle>
<PagerStyle
ForeColor="#8C4510"
HorizontalAlign="Center">
</PagerStyle>
<HeaderStyle
ForeColor="White"
Font-Bold="True"
BackColor="#A55129">
</HeaderStyle>
</asp:GridView>
</div>
</form>
这是我的web.config连接字符串:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=xxxxxx;Initial Catalog=yyyyyyy;User ID=zzzzz;Password=xxxxxx;" providerName="System.Data.SqlClient" />
gridview得到了正确的填充,我过去常常得到未处理的触发事件排序。但现在,我在尝试对一列进行排序时没有得到任何响应。这是否适用于自动生成的列?在哪里可以指定排序表达式?升序/降序等?只有在以下情况下,才需要执行初始数据绑定!IsPostback不是在每次连续回发时:
if(!IsPostBack)
{
string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
string selectSQL = "SELECT * from dbo.[User]";
SqlConnection con = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand(selectSQL, con);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adapter.Fill(ds, "Employee");
grvEmployee.DataSource = ds;
grvEmployee.DataBind();
}
在GridView1_排序中,您必须从数据库中选择有序数据并将其分配给网格的DataSource属性,然后调用grvEmployee.DataBind:
GridView排序示例:所以我需要为每个列创建不同的排序方法?此外,当我点击一列时,通过这种编辑,页面完全变为空白。很抱歉给您添麻烦,这在asp.net上是一个新功能。@onlyf:为什么每列有一个方法?您已经在使用e.SortExpression的方法中编写了代码。然而,有很多关于stackoverflow的问题显示了如何使用ASP.NET GridView实现排序。不久前我也提供了一个:看看这个教程:或者
if(!IsPostBack)
{
string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
string selectSQL = "SELECT * from dbo.[User]";
SqlConnection con = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand(selectSQL, con);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adapter.Fill(ds, "Employee");
grvEmployee.DataSource = ds;
grvEmployee.DataBind();
}