| Home | Forums | Reviews | Guides | Newsgroups | Register | Search |
![]() |
| Thread Tools |
| DC Gringo |
|
|
|
| |
|
=?Utf-8?B?U3VyZXNo?=
Guest
Posts: n/a
|
Try changing the followin
dv.Sort = e.SortExpressio t dv.Sort = e.SortExpression & " ASC The way you are doing sort will only handle one way sort (i.e. all columns can only be sorted in ascending order). If you want to be able to sort a column both ascending and descending order you'll need to do some more work The following is a good article on customizing the DataGrid control. There is a section on how you can implement 2 way sorting (search for What about Sorting? in the article) http://msdn.microsoft.com/msdnmag/is...ng/default.asp HTH Suresh ----- DC Gringo wrote: ---- I have a datagrid that won't sort. The event handler is firing and retur label text, just not the sort Here's my Sub Page_Load and Sub DataGrid1_SortCommand ------------------- Private Sub Page_Load(ByVal sender As System.Object, ByVal e A System.EventArgs) Handles MyBase.Loa 'Put user code to initialize the page her SqlDataAdapter1.Fill(DsAdvanced1 If Not IsPostBack The DataGrid1.DataBind( Provinces.DataBind( Districts.DataBind( SubDistricts.DataBind( Communities.DataBind( End I End Su -------------------- Public Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e A System.Web.UI.WebControls.DataGridSortCommandEvent Args) Handle DataGrid1.SortComman lblWhatClicked.Text = "You clicked: " & e.SortExpressio Dim dv As New DataView(DsAdvanced1.Tables(0) dv.Sort = e.SortExpressio DataGrid1.DataSource = d DataGrid1.DataBind( End Su -- ____ DC |
|
|
|
|
|||
|
|||
| =?Utf-8?B?U3VyZXNo?= |
|
|
|
| |
|
DC Gringo
Guest
Posts: n/a
|
Suresh...thank you for assisting. I added the & " ASC" as you suggested.
Unfortunately, that did not change anything...the datagrid still not sorting...it is posting and running the Sub as evidenced by my lblWhatClicked.Text = "You clicked: " & e.SortExpression, but the table is still un-sorted. Could you take another look? Public Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEvent Args) Handles DataGrid1.SortCommand lblWhatClicked.Text = "You clicked: " & e.SortExpression Dim dv As New DataView(DsAdvanced1.Tables(0)) dv.Sort = e.SortExpression & " ASC" DataGrid1.DataSource = dv DataGrid1.DataBind() End Sub Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Put user code to initialize the page here SqlDataAdapter1.Fill(DsAdvanced1) If Not IsPostBack Then DataGrid1.DataBind() Provinces.DataBind() Districts.DataBind() SubDistricts.DataBind() Communities.DataBind() End If End Sub "Suresh" <> wrote in message news:F3C0E42E-63FE-41BB-9564-... > Try changing the following > dv.Sort = e.SortExpression > > to > dv.Sort = e.SortExpression & " ASC" > > The way you are doing sort will only handle one way sort (i.e. all columns can only be sorted in ascending order). If you want to be able to sort a column both ascending and descending order you'll need to do some more work. > > The following is a good article on customizing the DataGrid control. There is a section on how you can implement 2 way sorting (search for What about Sorting? in the article). > > http://msdn.microsoft.com/msdnmag/is...g/default.aspx > > HTH, > Suresh. > > ----- DC Gringo wrote: ----- > > I have a datagrid that won't sort. The event handler is firing and return > label text, just not the sort. > > Here's my Sub Page_Load and Sub DataGrid1_SortCommand: > > -------------------- > > Private Sub Page_Load(ByVal sender As System.Object, ByVal e As > System.EventArgs) Handles MyBase.Load > 'Put user code to initialize the page here > SqlDataAdapter1.Fill(DsAdvanced1) > > If Not IsPostBack Then > DataGrid1.DataBind() > Provinces.DataBind() > Districts.DataBind() > SubDistricts.DataBind() > Communities.DataBind() > End If > > End Sub > > -------------------- > > > Public Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e As > System.Web.UI.WebControls.DataGridSortCommandEvent Args) Handles > DataGrid1.SortCommand > > lblWhatClicked.Text = "You clicked: " & e.SortExpression > > Dim dv As New DataView(DsAdvanced1.Tables(0)) > dv.Sort = e.SortExpression > DataGrid1.DataSource = dv > DataGrid1.DataBind() > > End Sub > > -- > _____ > DC G > > > |
|
|
|
|
|||
|
|||
| DC Gringo |
|
DC Gringo
Guest
Posts: n/a
|
Suresh, thanks for the follow-up...
When I tried that, I get an error on compile: "Value of type 'System.Data.DataView' cannot be converted to 'System.Data.DataTable'." _____ DC G "Suresh" <> wrote in message news:C78D48F0-8222-4334-80D6-... > I'm not sure why it still isn't working.. > > Try one more thing and see if this helps. > Change the following line > > Dim dv As New DataView(DsAdvanced1.Tables(0)) > > to > > Dim dv As New DataView(DsAdvanced1.Tables(0).DefaultView) > > Suresh. > > ----- DC Gringo wrote: ----- > > Suresh...thank you for assisting. I added the & " ASC" as you suggested. > Unfortunately, that did not change anything...the datagrid still not > sorting...it is posting and running the Sub as evidenced by my > lblWhatClicked.Text = "You clicked: " & e.SortExpression, but the table is > still un-sorted. > > Could you take another look? > > Public Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e As > System.Web.UI.WebControls.DataGridSortCommandEvent Args) Handles > DataGrid1.SortCommand > > lblWhatClicked.Text = "You clicked: " & e.SortExpression > > Dim dv As New DataView(DsAdvanced1.Tables(0)) > dv.Sort = e.SortExpression & " ASC" > DataGrid1.DataSource = dv > DataGrid1.DataBind() > End Sub > > Private Sub Page_Load(ByVal sender As System.Object, ByVal e As > System.EventArgs) Handles MyBase.Load > 'Put user code to initialize the page here > > SqlDataAdapter1.Fill(DsAdvanced1) > If Not IsPostBack Then > DataGrid1.DataBind() > Provinces.DataBind() > Districts.DataBind() > SubDistricts.DataBind() > Communities.DataBind() > > End If > End Sub > > "Suresh" <> wrote in message > news:F3C0E42E-63FE-41BB-9564-... > > Try changing the following > > dv.Sort = e.SortExpression > >> to > > dv.Sort = e.SortExpression & " ASC" > >> The way you are doing sort will only handle one way sort (i.e. all columns > can only be sorted in ascending order). If you want to be able to sort a > column both ascending and descending order you'll need to do some more work. > >> The following is a good article on customizing the DataGrid control. > There is a section on how you can implement 2 way sorting (search for What > about Sorting? in the article). > >> http://msdn.microsoft.com/msdnmag/is...g/default.aspx > >> HTH, > > Suresh. > >> ----- DC Gringo wrote: ----- > >> I have a datagrid that won't sort. The event handler is firing and > return > > label text, just not the sort. > >> Here's my Sub Page_Load and Sub DataGrid1_SortCommand: > >> -------------------- > >> Private Sub Page_Load(ByVal sender As System.Object, ByVal e As > > System.EventArgs) Handles MyBase.Load > > 'Put user code to initialize the page here > > SqlDataAdapter1.Fill(DsAdvanced1) > >> If Not IsPostBack Then > > DataGrid1.DataBind() > > Provinces.DataBind() > > Districts.DataBind() > > SubDistricts.DataBind() > > Communities.DataBind() > > End If > >> End Sub > >> -------------------- > >>> Public Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e As > > System.Web.UI.WebControls.DataGridSortCommandEvent Args) Handles > > DataGrid1.SortCommand > >> lblWhatClicked.Text = "You clicked: " & e.SortExpression > >> Dim dv As New DataView(DsAdvanced1.Tables(0)) > > dv.Sort = e.SortExpression > > DataGrid1.DataSource = dv > > DataGrid1.DataBind() > >> End Sub > >> -- > > _____ > > DC G > >>> |
|
|
|
|
|||
|
|||
| DC Gringo |
|
=?Utf-8?B?U3VyZXNo?=
Guest
Posts: n/a
|
Sorry for that I made a mistake. I'm not familiar with VB.NET that much
So Dim dv As New DataView(DsAdvanced1.Tables(0).DefaultView shoule b Dim dv As DataView = ds.Tables("Books").DefaultVie Just FYI (I'm posting VB.NET code with a grid that has sort enabled and working ASPX ------ <asp VB Codebehind ----------------- Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Loa If Not Page.IsPostBack The Dim objConn As SqlConnection = New SqlConnection("database=pubs;server=mysqlserver;ui d=myuname;password=mypwd" Dim objAdap As SqlDataAdapter = New SqlDataAdapter("select title_id, title, price from Titles", objConn Dim ds As DataSet = New DataSet( objAdap.Fill(ds, "Books" Dim dv As DataView = ds.Tables("Books").DefaultVie dv.Sort = "title ASC DataGrid1.DataSource = ds.Tables("Books").DefaultVie DataGrid1.DataBind( End I End Su Private Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEvent Args) Handles DataGrid1.SortComman Dim objConn As SqlConnection = New SqlConnection("database=pubs;server=mysqlserver;ui d=myuname;password=mypwd" Dim objAdap As SqlDataAdapter = New SqlDataAdapter("select title_id, title, price from Titles", objConn Dim ds As DataSet = New DataSet( objAdap.Fill(ds, "Books" Dim dv As DataView = ds.Tables("Books").DefaultVie dv.Sort = e.SortExpression & " ASC DataGrid1.DataSource = ds.Tables("Books").DefaultVie DataGrid1.DataBind( End Su Hope this helps you narrow the problem Suresh ----- DC Gringo wrote: ---- Suresh, thanks for the follow-up.. When I tried that, I get an error on compile: "Value of typ 'System.Data.DataView' cannot be converted to 'System.Data.DataTable'. ____ DC "Suresh" <> wrote in messag news:C78D48F0-8222-4334-80D6-.. > I'm not sure why it still isn't working. >> Try one more thing and see if this helps > Change the following lin >> Dim dv As New DataView(DsAdvanced1.Tables(0) >> t >> Dim dv As New DataView(DsAdvanced1.Tables(0).DefaultView >> Suresh >> ----- DC Gringo wrote: ---- >> Suresh...thank you for assisting. I added the & " ASC" as yo suggested > Unfortunately, that did not change anything...the datagrid still no > sorting...it is posting and running the Sub as evidenced by m > lblWhatClicked.Text = "You clicked: " & e.SortExpression, but th table i > still un-sorted >> Could you take another look >> Public Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e A > System.Web.UI.WebControls.DataGridSortCommandEvent Args) Handle > DataGrid1.SortComman >> lblWhatClicked.Text = "You clicked: " & e.SortExpressio >> Dim dv As New DataView(DsAdvanced1.Tables(0) > dv.Sort = e.SortExpression & " ASC > DataGrid1.DataSource = d > DataGrid1.DataBind( > End Su >> Private Sub Page_Load(ByVal sender As System.Object, ByVal e A > System.EventArgs) Handles MyBase.Loa > 'Put user code to initialize the page her >> SqlDataAdapter1.Fill(DsAdvanced1 > If Not IsPostBack The > DataGrid1.DataBind( > Provinces.DataBind( > Districts.DataBind( > SubDistricts.DataBind( > Communities.DataBind( >> End I > End Su >> "Suresh" <> wrote in messag > news:F3C0E42E-63FE-41BB-9564-.. >> Try changing the followin >> dv.Sort = e.SortExpression >>> to >> dv.Sort = e.SortExpression & " ASC" >>> The way you are doing sort will only handle one way sort (i.e. all columns > can only be sorted in ascending order). If you want to be able to sort a > column both ascending and descending order you'll need to do some more work. >>> The following is a good article on customizing the DataGrid control. > There is a section on how you can implement 2 way sorting (search for What > about Sorting? in the article). >>> http://msdn.microsoft.com/msdnmag/is...g/default.aspx >>> HTH, >> Suresh. >>> ----- DC Gringo wrote: ----- >>> I have a datagrid that won't sort. The event handler is firing and > return >> label text, just not the sort. >>> Here's my Sub Page_Load and Sub DataGrid1_SortCommand: >>> -------------------- >>> Private Sub Page_Load(ByVal sender As System.Object, ByVal e As >> System.EventArgs) Handles MyBase.Load >> 'Put user code to initialize the page here >> SqlDataAdapter1.Fill(DsAdvanced1) >>> If Not IsPostBack Then >> DataGrid1.DataBind() >> Provinces.DataBind() >> Districts.DataBind() >> SubDistricts.DataBind() >> Communities.DataBind() >> End If >>> End Sub >>> -------------------- >>>> Public Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e As >> System.Web.UI.WebControls.DataGridSortCommandEvent Args) Handles >> DataGrid1.SortCommand >>> lblWhatClicked.Text = "You clicked: " & e.SortExpression >>> Dim dv As New DataView(DsAdvanced1.Tables(0)) >> dv.Sort = e.SortExpression >> DataGrid1.DataSource = dv >> DataGrid1.DataBind() >>> End Sub >>> -- >> _____ >> DC G >>>> |
|
|
|
|
|||
|
|||
| =?Utf-8?B?U3VyZXNo?= |
|
DC Gringo
Guest
Posts: n/a
|
Suresh,
Seems like we're almost there. I realized I had a SORT BY ASC command in my stored procedure that may have been hindering. I still unable, however, to get either the pre-are postback code to sort in either direction. To simplify and troubleshoot, I'm just try to sort ASC by a specified field in the the initial load of the page, and then sort DESC by the same column in the event of a DataGrid1_SortCommand. No sorting is taking place at all with what I have here, though. Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Put user code to initialize the page here If Not Page.IsPostBack Then SqlDataAdapter1.Fill(DsAdvanced1) Dim dv2 As DataView = DsAdvanced1.Tables("sac1SelectSurvey1").DefaultVie w dv2.Sort = " clnName ASC" 'e.SortExpression & DataGrid1.DataSource = DsAdvanced1.Tables("sac1SelectSurvey1").DefaultVie w DataGrid1.DataBind() Provinces.DataBind() Districts.DataBind() SubDistricts.DataBind() Communities.DataBind() End If End Sub Public Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEvent Args) Handles DataGrid1.SortCommand lblWhatClicked.Text = "You clicked: " & e.SortExpression SqlDataAdapter1.Fill(DsAdvanced1) Dim dv2 As DataView = DsAdvanced1.Tables("sac1SelectSurvey1").DefaultVie w dv2.Sort = " clnName DESC" 'e.SortExpression & DataGrid1.DataSource = DsAdvanced1.Tables("sac1SelectSurvey1").DefaultVie w DataGrid1.DataBind() End Sub _____ DC G "Suresh" <> wrote in message news:78F514E2-F1FC-4872-B5E6-... > Sorry for that I made a mistake. I'm not familiar with VB.NET that much. > > So > Dim dv As New DataView(DsAdvanced1.Tables(0).DefaultView) > shoule be > Dim dv As DataView = ds.Tables("Books").DefaultView > > Just FYI (I'm posting VB.NET code with a grid that has sort enabled and working) > > ASPX: > ------- > <asp AllowSorting="True"></asp > > VB Codebehind: > ------------------ > > Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load > If Not Page.IsPostBack Then > Dim objConn As SqlConnection = New SqlConnection("database=pubs;server=mysqlserver;ui d=myuname;password=mypwd") > Dim objAdap As SqlDataAdapter = New SqlDataAdapter("select title_id, title, price from Titles", objConn) > > Dim ds As DataSet = New DataSet() > objAdap.Fill(ds, "Books") > > Dim dv As DataView = ds.Tables("Books").DefaultView > > dv.Sort = "title ASC" > DataGrid1.DataSource = ds.Tables("Books").DefaultView > DataGrid1.DataBind() > End If > End Sub > > Private Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEvent Args) Handles DataGrid1.SortCommand > Dim objConn As SqlConnection = New SqlConnection("database=pubs;server=mysqlserver;ui d=myuname;password=mypwd") > Dim objAdap As SqlDataAdapter = New SqlDataAdapter("select title_id, title, price from Titles", objConn) > > Dim ds As DataSet = New DataSet() > objAdap.Fill(ds, "Books") > > Dim dv As DataView = ds.Tables("Books").DefaultView > > dv.Sort = e.SortExpression & " ASC" > DataGrid1.DataSource = ds.Tables("Books").DefaultView > DataGrid1.DataBind() > End Sub > > Hope this helps you narrow the problem. > Suresh. > > ----- DC Gringo wrote: ----- > > Suresh, thanks for the follow-up... > > When I tried that, I get an error on compile: "Value of type > 'System.Data.DataView' cannot be converted to 'System.Data.DataTable'." > > _____ > DC G > > > "Suresh" <> wrote in message > news:C78D48F0-8222-4334-80D6-... > > I'm not sure why it still isn't working.. > >> Try one more thing and see if this helps. > > Change the following line > >> Dim dv As New DataView(DsAdvanced1.Tables(0)) > >> to > >> Dim dv As New DataView(DsAdvanced1.Tables(0).DefaultView) > >> Suresh. > >> ----- DC Gringo wrote: ----- > >> Suresh...thank you for assisting. I added the & " ASC" as you > suggested. > > Unfortunately, that did not change anything...the datagrid still not > > sorting...it is posting and running the Sub as evidenced by my > > lblWhatClicked.Text = "You clicked: " & e.SortExpression, but the > table is > > still un-sorted. > >> Could you take another look? > >> Public Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e As > > System.Web.UI.WebControls.DataGridSortCommandEvent Args) Handles > > DataGrid1.SortCommand > >> lblWhatClicked.Text = "You clicked: " & e.SortExpression > >> Dim dv As New DataView(DsAdvanced1.Tables(0)) > > dv.Sort = e.SortExpression & " ASC" > > DataGrid1.DataSource = dv > > DataGrid1.DataBind() > > End Sub > >> Private Sub Page_Load(ByVal sender As System.Object, ByVal e As > > System.EventArgs) Handles MyBase.Load > > 'Put user code to initialize the page here > >> SqlDataAdapter1.Fill(DsAdvanced1) > > If Not IsPostBack Then > > DataGrid1.DataBind() > > Provinces.DataBind() > > Districts.DataBind() > > SubDistricts.DataBind() > > Communities.DataBind() > >> End If > > End Sub > >> "Suresh" <> wrote in message > > news:F3C0E42E-63FE-41BB-9564-... > >> Try changing the following > >> dv.Sort = e.SortExpression > >>> to > >> dv.Sort = e.SortExpression & " ASC" > >>> The way you are doing sort will only handle one way sort (i.e. all > columns > > can only be sorted in ascending order). If you want to be able to > sort a > > column both ascending and descending order you'll need to do some > more work. > >>> The following is a good article on customizing the DataGrid > control. > > There is a section on how you can implement 2 way sorting (search for > What > > about Sorting? in the article). > >>> > http://msdn.microsoft.com/msdnmag/is...g/default.aspx > >>> HTH, > >> Suresh. > >>> ----- DC Gringo wrote: ----- > >>> I have a datagrid that won't sort. The event handler is > firing and > > return > >> label text, just not the sort. > >>> Here's my Sub Page_Load and Sub DataGrid1_SortCommand: > >>> -------------------- > >>> Private Sub Page_Load(ByVal sender As System.Object, ByVal e > As > >> System.EventArgs) Handles MyBase.Load > >> 'Put user code to initialize the page here > >> SqlDataAdapter1.Fill(DsAdvanced1) > >>> If Not IsPostBack Then > >> DataGrid1.DataBind() > >> Provinces.DataBind() > >> Districts.DataBind() > >> SubDistricts.DataBind() > >> Communities.DataBind() > >> End If > >>> End Sub > >>> -------------------- > >>>> Public Sub DataGrid1_SortCommand(ByVal source As Object, > ByVal e As > >> System.Web.UI.WebControls.DataGridSortCommandEvent Args) > Handles > >> DataGrid1.SortCommand > >>> lblWhatClicked.Text = "You clicked: " & e.SortExpression > >>> Dim dv As New DataView(DsAdvanced1.Tables(0)) > >> dv.Sort = e.SortExpression > >> DataGrid1.DataSource = dv > >> DataGrid1.DataBind() > >>> End Sub > >>> -- > >> _____ > >> DC G > >>>> |
|
|
|
|
|||
|
|||
| DC Gringo |
|
=?Utf-8?B?U3VyZXNo?=
Guest
Posts: n/a
|
> I realized I had a SORT BY ASC command in my stored procedure that may have been hindering
No this is ok. Because when you sort the DataView it's already detached from the DB and does a fresh sort on the recordset with the criteria specified by the user (i.e. clicking on the columns) Damn, again another mistake by me. Although it does work either way in my sample >DataGrid1.DataSource = DsAdvanced1.Tables("sac1SelectSurvey1").DefaultVie Instead shoule b DataGrid1.DataSource = d Finally in the DataGrid1_SortCommand method >Dim dv2 As DataView = DsAdvanced1.Tables("sac1SelectSurvey1").DefaultVie >dv2.Sort = " clnName DESC >'e.SortExpression &>DataGrid1.DataSource = DsAdvanced1.Tables("sac1SelectSurvey1").DefaultVie >DataGrid1.DataBind( dv2.Sort = e.SortExpression & "DESC o dv2.Sort = e.SortExpression & "ASC You have the following >dv2.Sort = " clnName DESC This will always sort by clnName DESC everytime you click on a column header Change it to the way I've described above and see if it'll work Suresh ----- DC Gringo wrote: ---- Suresh Seems like we're almost there. I realized I had a SORT BY ASC command in m stored procedure that may have been hindering. I still unable, however, t get either the pre-are postback code to sort in either direction. T simplify and troubleshoot, I'm just try to sort ASC by a specified field i the the initial load of the page, and then sort DESC by the same column i the event of a DataGrid1_SortCommand No sorting is taking place at all with what I have here, though Private Sub Page_Load(ByVal sender As System.Object, ByVal e A System.EventArgs) Handles MyBase.Loa 'Put user code to initialize the page her If Not Page.IsPostBack The SqlDataAdapter1.Fill(DsAdvanced1 Dim dv2 As DataView DsAdvanced1.Tables("sac1SelectSurvey1").DefaultVie dv2.Sort = " clnName ASC 'e.SortExpression DataGrid1.DataSource DsAdvanced1.Tables("sac1SelectSurvey1").DefaultVie DataGrid1.DataBind( Provinces.DataBind( Districts.DataBind( SubDistricts.DataBind( Communities.DataBind( End I End Su Public Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e A System.Web.UI.WebControls.DataGridSortCommandEvent Args) Handle DataGrid1.SortComman lblWhatClicked.Text = "You clicked: " & e.SortExpressio SqlDataAdapter1.Fill(DsAdvanced1 Dim dv2 As DataView DsAdvanced1.Tables("sac1SelectSurvey1").DefaultVie dv2.Sort = " clnName DESC 'e.SortExpression DataGrid1.DataSource DsAdvanced1.Tables("sac1SelectSurvey1").DefaultVie DataGrid1.DataBind( End Su ____ DC "Suresh" <> wrote in messag news:78F514E2-F1FC-4872-B5E6-.. > Sorry for that I made a mistake. I'm not familiar with VB.NET that much >> S > Dim dv As New DataView(DsAdvanced1.Tables(0).DefaultView > shoule b > Dim dv As DataView = ds.Tables("Books").DefaultVie >> Just FYI (I'm posting VB.NET code with a grid that has sort enabled an working >> ASPX > ------ ><asp AllowSorting="True"></asp > ----------------- >> Private Sub Page_Load(ByVal sender As System.Object, ByVal e A System.EventArgs) Handles MyBase.Loa > If Not Page.IsPostBack The > Dim objConn As SqlConnection = Ne SqlConnection("database=pubs;server=mysqlserver;ui d=myuname;password=mypwd" > Dim objAdap As SqlDataAdapter = New SqlDataAdapter("selec title_id, title, price from Titles", objConn >> Dim ds As DataSet = New DataSet() > objAdap.Fill(ds, "Books") >> Dim dv As DataView = ds.Tables("Books").DefaultView >> dv.Sort = "title ASC" > DataGrid1.DataSource = ds.Tables("Books").DefaultView > DataGrid1.DataBind() > End If > End Sub >> Private Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEvent Args) Handles DataGrid1.SortCommand > Dim objConn As SqlConnection = New SqlConnection("database=pubs;server=mysqlserver;ui d=myuname;password=mypwd") > Dim objAdap As SqlDataAdapter = New SqlDataAdapter("select title_id, title, price from Titles", objConn) >> Dim ds As DataSet = New DataSet() > objAdap.Fill(ds, "Books") >> Dim dv As DataView = ds.Tables("Books").DefaultView >> dv.Sort = e.SortExpression & " ASC" > DataGrid1.DataSource = ds.Tables("Books").DefaultView > DataGrid1.DataBind() > End Sub >> Hope this helps you narrow the problem. > Suresh. |
|
|
|
|
|||
|
|||
| =?Utf-8?B?U3VyZXNo?= |
|
DC Gringo
Guest
Posts: n/a
|
Suresh,
Nope, still same thing. Should I have a special "Imports" statement at the top of this user control's code-behind? Currently I don't have any. I'm using SqlDataAdapter remember. Although I'm assuming that if there was a problem with Imports, it would not even render what data I have. _____ DC G "Suresh" <> wrote in message news:7D774F19-D014-42AC-A8E7-... > > I realized I had a SORT BY ASC command in my stored procedure that may have been hindering. > No this is ok. Because when you sort the DataView it's already detached from the DB and does a fresh sort on the recordset with the criteria specified by the user (i.e. clicking on the columns). > > Damn, again another mistake by me. Although it does work either way in my sample. > >DataGrid1.DataSource = DsAdvanced1.Tables("sac1SelectSurvey1").DefaultVie w > > Instead shoule be > DataGrid1.DataSource = dv > > Finally in the DataGrid1_SortCommand method. > > >Dim dv2 As DataView = DsAdvanced1.Tables("sac1SelectSurvey1").DefaultVie w > >dv2.Sort = " clnName DESC" > >'e.SortExpression &>DataGrid1.DataSource = DsAdvanced1.Tables("sac1SelectSurvey1").DefaultVie w > >DataGrid1.DataBind() > > dv2.Sort = e.SortExpression & "DESC" > or > dv2.Sort = e.SortExpression & "ASC" > > You have the following, > >dv2.Sort = " clnName DESC" > This will always sort by clnName DESC everytime you click on a column header. > > Change it to the way I've described above and see if it'll work. > Suresh. > > ----- DC Gringo wrote: ----- > > Suresh, > > Seems like we're almost there. I realized I had a SORT BY ASC command in my > stored procedure that may have been hindering. I still unable, however, to > get either the pre-are postback code to sort in either direction. To > simplify and troubleshoot, I'm just try to sort ASC by a specified field in > the the initial load of the page, and then sort DESC by the same column in > the event of a DataGrid1_SortCommand. > > No sorting is taking place at all with what I have here, though. > > Private Sub Page_Load(ByVal sender As System.Object, ByVal e As > System.EventArgs) Handles MyBase.Load > 'Put user code to initialize the page here > > If Not Page.IsPostBack Then > SqlDataAdapter1.Fill(DsAdvanced1) > Dim dv2 As DataView = > DsAdvanced1.Tables("sac1SelectSurvey1").DefaultVie w > dv2.Sort = " clnName ASC" > 'e.SortExpression & > DataGrid1.DataSource = > DsAdvanced1.Tables("sac1SelectSurvey1").DefaultVie w > DataGrid1.DataBind() > > Provinces.DataBind() > Districts.DataBind() > SubDistricts.DataBind() > Communities.DataBind() > > End If > > End Sub > > Public Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e As > System.Web.UI.WebControls.DataGridSortCommandEvent Args) Handles > DataGrid1.SortCommand > > lblWhatClicked.Text = "You clicked: " & e.SortExpression > > SqlDataAdapter1.Fill(DsAdvanced1) > Dim dv2 As DataView = > DsAdvanced1.Tables("sac1SelectSurvey1").DefaultVie w > dv2.Sort = " clnName DESC" > 'e.SortExpression & > DataGrid1.DataSource = > DsAdvanced1.Tables("sac1SelectSurvey1").DefaultVie w > DataGrid1.DataBind() > End Sub > > > _____ > DC G > > "Suresh" <> wrote in message > news:78F514E2-F1FC-4872-B5E6-... > > Sorry for that I made a mistake. I'm not familiar with VB.NET that much. > >> So > > Dim dv As New DataView(DsAdvanced1.Tables(0).DefaultView) > > shoule be > > Dim dv As DataView = ds.Tables("Books").DefaultView > >> Just FYI (I'm posting VB.NET code with a grid that has sort enabled and > working) > >> ASPX: > > ------- > ><asp > AllowSorting="True"></asp > > ------------------ > >> Private Sub Page_Load(ByVal sender As System.Object, ByVal e As > System.EventArgs) Handles MyBase.Load > > If Not Page.IsPostBack Then > > Dim objConn As SqlConnection = New > SqlConnection("database=pubs;server=mysqlserver;ui d=myuname;password=mypwd") > > Dim objAdap As SqlDataAdapter = New SqlDataAdapter("select > title_id, title, price from Titles", objConn) > >> Dim ds As DataSet = New DataSet() > > objAdap.Fill(ds, "Books") > >> Dim dv As DataView = ds.Tables("Books").DefaultView > >> dv.Sort = "title ASC" > > DataGrid1.DataSource = ds.Tables("Books").DefaultView > > DataGrid1.DataBind() > > End If > > End Sub > >> Private Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e As > System.Web.UI.WebControls.DataGridSortCommandEvent Args) Handles > DataGrid1.SortCommand > > Dim objConn As SqlConnection = New > SqlConnection("database=pubs;server=mysqlserver;ui d=myuname;password=mypwd") > > Dim objAdap As SqlDataAdapter = New SqlDataAdapter("select title_id, > title, price from Titles", objConn) > >> Dim ds As DataSet = New DataSet() > > objAdap.Fill(ds, "Books") > >> Dim dv As DataView = ds.Tables("Books").DefaultView > >> dv.Sort = e.SortExpression & " ASC" > > DataGrid1.DataSource = ds.Tables("Books").DefaultView > > DataGrid1.DataBind() > > End Sub > >> Hope this helps you narrow the problem. > > Suresh. |
|
|
|
|
|||
|
|||
| DC Gringo |
|
|
|
| |
![]() |
| Thread Tools | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Re: When will Thunderbird support sort in place (in context sort)? | Ron Natalie | Firefox | 0 | 02-02-2006 04:38 AM |
| The Colourised Bewitched -- sort of OK....... sort of! | anthony | DVD Video | 26 | 06-28-2005 04:39 AM |
| DataGrid. How to keep the right keyfield value when Sort the DataGrid? | Eugene | ASP .Net | 0 | 09-28-2004 05:15 PM |
| xsl:sort lang="es" modern vs. tradidional Spanish sort order | nobody | XML | 0 | 06-01-2004 06:25 AM |
| Ado sort error-Ado Sort -Relate, Compute By, or Sort operations cannot be done on column(s) whose key length is unknown or exceeds 10 KB. | Navin | ASP General | 1 | 09-09-2003 07:16 AM |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc..
SEO by vBSEO ©2010, Crawlability, Inc. |




