webForumDet fria alternativet

Sortering i GridView

.NET

0 svar · 361 visningar · startad av Calevan

Medlem sedan maj 20031 173 inlägg
Frågan#1

Hej,

Jag har en GridView som jag nu vill sortera. Har läst min litteratur och kollar runt på olika sidor. Dock förstår jag inte en sak; i vissa exempel verkar det räcka att skriva AllowSorting="True" (http://msdn2.microsoft.com/en-us/library/aa479347.aspx) medan det i andra exempel krävs att man lägger in kod som hanterar själva sorterandet (http://www.syncfusion.com/FAQ/aspnet/web_c4c.aspx#q207q).

Hur är det man ska göra egentligen? Tips motages tacksamt. Här kommer min kod:

<%@ Page Language="VB" Debug="true" %>

<%@ Import Namespace="MySql.Data.MySqlClient" %>
<%@ Import Namespace="System.Data" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv" lang="sv">
<head id="Head1" runat="server">
 <title>Fredriks priser</title>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 <meta name="robots" content="noindex, nofollow">
 <link rel="stylesheet" href="style/style.css" type="text/css" />
</head>

<body id="prissida">

<form id="form1" runat="server">

<script language="VB" runat="server">

    Sub Page_Load(ByVal Sender As Object, ByVal ea As EventArgs)

        If Not Page.IsPostBack Then
          
            Dim myConnection As New MySqlConnection("server=x; uid=y; pwd=z; database=s;")
            Dim myCommand As New MySqlCommand()
            Dim myDataAdapter As New MySqlDataAdapter()
            Dim myDataSet As New DataSet()
        
            myCommand.Connection = myConnection
            myCommand.CommandText = "SELECT Nummer, Klubb, Segling, Datum, Placering, Klass, Ovrigt FROM tblPriser ORDER BY Nummer ASC"
           
            Try
           
                myDataAdapter.SelectCommand = myCommand
                myDataAdapter.Fill(myDataSet)
               
                MySQLDataGrid.DataSource = myDataSet
                MySQLDataGrid.DataBind()
            
            Catch ex As MySqlException
                Select Case ex.Number
                    Case 0
                        Response.Write("Cannot connect to server. Contact administrator")
                    Case 1045
                        Response.Write("Invalid username/password, please try again")
                End Select
            End Try
        End If
    End Sub   
</script>

<asp:GridView ID="MySQLDataGrid" runat="server" AutoGenerateColumns="False" 
    AllowPaging="True" PageSize="5" AllowSorting="True" 
    CellPadding="4" ForeColor="#333333" GridLines="None"
    EnableSortingAndPagingCallbacks="True" >
    <PagerSettings Mode="NumericFirstLast" />
    <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
    <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<Columns>

<asp:BoundField ReadOnly="True" HeaderText="Nummer"
InsertVisible="False" DataField="Nummer"
SortExpression="Nummer"></asp:BoundField>
<asp:BoundField ReadOnly="True" HeaderText="Klubb"
InsertVisible="False" DataField="Klubb"
SortExpression="Klubb"></asp:BoundField>
<asp:BoundField ReadOnly="True" HeaderText="Segling"
InsertVisible="False" DataField="Segling"
SortExpression="Segling"></asp:BoundField>
<asp:BoundField ReadOnly="True" HeaderText="Datum"
InsertVisible="False" DataField="Datum" DataFormatString="{0:yyyy-MM-dd}"
SortExpression="Datum"></asp:BoundField>
<asp:BoundField ReadOnly="True" HeaderText="Placering"
InsertVisible="False" DataField="Placering"
SortExpression="Placering"></asp:BoundField>
<asp:BoundField ReadOnly="True" HeaderText="Klass"
InsertVisible="False" DataField="Klass"
SortExpression="Klass"></asp:BoundField>
<asp:BoundField ReadOnly="True" HeaderText="Övrigt"
InsertVisible="False" DataField="Ovrigt"
SortExpression="Ovrigt"></asp:BoundField>
</Columns>
    <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
    <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
    <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
    <EditRowStyle BackColor="#999999" />
    <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>
</form>

</body>
</html>

tack tack!

254 ms totalt · 3 externa anrop · v20260731065814-full.a4a6ad0e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)