0
我們有一個由Visual Studio DataSet設計器創建的類型化數據集。創建一個DataView用於排序ASP.Net GridView列
你能告訴我如何從類型化的DataSet中創建一個DataView對象嗎?我們想改變它的排序,以便它可以顯示在ASP.Net DataView中。
我們搜索了很長時間才發現這件事,但空手而歸。
這是DataView的標記。所有編碼被切下來,因爲我們的Web表單很大:
<asp:UpdatePanel
ID="UpdatePanelSummary"
runat="server"
UpdateMode="Always">
<ContentTemplate>
<h1>Maintenance</h1>
<% '-- GridView (Grid) for summary. -- %>
<% '-- The user chooses a summary row from here and details are shown in a DetailsView. -- %>
<% '--------------------------------------------------------------------------------------- %>
<asp:GridView
ID="GridViewSummary"
runat="server"
AllowSorting="True"
AutoGenerateColumns="False"
DataKeyNames="ID"
Width="224px"
AllowPaging="True"
PageSize="7">
<Columns>
<asp:BoundField DataField="Unit" HeaderText="Unit"
SortExpression="Unit" />
<asp:BoundField DataField="TheName" HeaderText="Name"
SortExpression="TheName" />
<asp:BoundField DataField="ID"
HeaderText="ID" SortExpression="ID" InsertVisible="False" ReadOnly="True"
Visible="False" />
<asp:CommandField ButtonType="Button" SelectText="Select Unit Details"
ShowSelectButton="True" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
這是我們要創建到從代碼隱藏文件中的數據視圖中的數據:
' Database objects.
'------------------
Dim theTableAdapter As New DataSetClassesTableAdapters.ClassesTableAdapter
Private Sub Teachers_Init(sender As Object, e As EventArgs) Handles Me.Init
' Load the data from the database into the GridView.
'---------------------------------------------------
GridViewSummary.DataSource = theTableAdapter.GetDataByAllClasses
GridViewSummary.DataBind()
End Sub
Private Function bindgrid() As DataView
Dim dv As DataView = New DataView()
If ViewState("sortExpr") IsNot Nothing Then
dv = New DataView("The DataSet Is Here")
dv.Sort = DirectCast(ViewState("sortExpr"), String)
Else
dv = ds.Tables(0).DefaultView
End If
Return dv
End Function
Protected Sub GridViewSummary_Sorting(sender As Object, e As GridViewSortEventArgs) Handles GridViewSummary.Sorting
ViewState("sortExpr") = e.SortExpression
GridViewSummary.DataSource = bindgrid()
GridViewSummary.DataBind()
End Sub
感謝您的答覆。我試過了:dv = New DataView() dv.Table = DataSetClasses.Tables(0),但得到一個錯誤,指出它需要一個對象引用。你能告訴我如何做對象引用嗎? –