1

Gridview を使用して 1 つのテーブルのデータを表示していますが、以下のコードを使用すると自動並べ替えができず、「System.Web.HttpException: GridView 'GridView1' で処理されなかった並べ替えイベントが発生しました」というエラーが表示されます"

イベントをソートするためのコードを記述する必要なく自動ソートする必要があります。動作させましたが、ASPX ファイルを使用しましたが、クエリを変更して異なるフィルターを実行したいので、それを使用したくありません。 .aspx ファイルではなく .vb ファイルからこれを行いたい

これが私のコードです

Imports System.Data.SqlClient



Public Class WebForm1
   Inherits System.Web.UI.Page

   Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

      Dim cnnData As New SqlConnection(ConfigurationManager.ConnectionStrings("DataTestConnectionString").ConnectionString)
    'Dim adData As New SqlDataAdapter
    Dim dsData As New DataSet
    Dim strQry As String

    strQry = "SELECT Student_No, " & _
                    "FName, " & _
                    "MName, " & _
                    "LName, " & _
                    "Phone_No, " & _
                    "Major, " & _
                    "Start_Date, " & _
                    "Status " & _
             "FROM tblStudent"



    Dim adData As New SqlDataAdapter(strQry, cnnData)

    adData.Fill(dsData)
    GridView1.DataSource = dsData

    GridView1.DataBind()



    'cnnData.Close()
    'adData.Dispose()

End Sub

End Class

ここに私のaspxマークアップがあります:

 <asp:GridView 
         ID="GridView1" 
         runat="server" 
         AllowPaging="True" 
         AllowSorting="True" 
         AutoGenerateColumns="False" 
         DataKeyNames="Student_No" 
         Height="30%" 
         Width="90%"
         CssClass="GridViewCSS"
         PagerStyle-CssClass="GridViewPager" 
         AlternatingRowStyle-CssClass="GridViewAlt"
         DataGridViewLinkColumn="Student_No"
         >


  <AlternatingRowStyle CssClass="GridViewAlt"></AlternatingRowStyle>


        <Columns>


        <asp:hyperlinkfield 
             DataTextField ="Student_No"
             navigateurl="./studentedit.aspx"            
             headertext="Employee No"
             />

            <asp:BoundField 
                 DataField="Student_No" 
                 HeaderText="Student No" 
                 ReadOnly="True" 
                 SortExpression="Student_No" 
                 FooterStyle-Font-Underline ="true"
                 />


            <asp:BoundField 
                 DataField="FName" 
                 HeaderText="First Name" 
                 ReadOnly="True" 
                 SortExpression="FName" 
                 />

            <asp:BoundField 
                 DataField="MName" 
                 HeaderText="Middle Initial" 
                 ReadOnly="True" 
                 SortExpression="MName" 
                 />

            <asp:BoundField 
                 DataField="LName" 
                 HeaderText="Last Name" 
                 ReadOnly="True" 
                 SortExpression="LName" 
                 />


            <asp:BoundField 
                 DataField="Phone_No" 
                 HeaderText="Phone Number" 
                 ReadOnly="True" 
                 SortExpression="Phone_No" 
                 />

            <asp:BoundField 
                 DataField="Major" 
                 HeaderText="Major" 
                 ReadOnly="True" 
                 SortExpression="Major" 
                 />

            <asp:BoundField 
                 DataField="start_date" 
                 HeaderText="Start Date" 
                 ReadOnly="True" 
                 SortExpression="Start_Date" 
                 />

            <asp:BoundField 
                 DataField="Status" 
                 HeaderText="Status" 
                 ReadOnly="True" 
                 SortExpression="Status" 
                 />

        </Columns>

 <PagerStyle CssClass="GridViewPager"></PagerStyle>
      </asp:GridView

助けていただければ幸いです。

ありがとう!

4

2 に答える 2

0

SQL クエリで表示データを並べ替えることもできます。

trQry = "SELECT Student_No, " & _
                "FName, " & _
                "MName, " & _
                "LName, " & _
                "Phone_No, " & _
                "Major, " & _
                "Start_Date, " & _
                "Status " & _
         "FROM tblStudent **order by FName**"

任意の方法で並べ替えることができます。上記では、FName に従って tblstudent を並べ替えています。

于 2014-01-08T10:13:25.867 に答える