<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>FAQ - Frequently Asked Questions</title><link>http://forums.asp.net/13.aspx</link><description>Your question has probably already been answered. Look here for some great answers!</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Re: HOW TO: Using sorting / paging on GridView w/o a DataSourceControl DataSource</title><link>http://forums.asp.net/thread/1829920.aspx</link><pubDate>Mon, 30 Jul 2007 06:56:02 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1829920</guid><dc:creator>krishanmanral</dc:creator><author>krishanmanral</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1829920.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=13&amp;PostID=1829920</wfw:commentRss><description>thank you very much&amp;nbsp;it works for me</description></item><item><title>Re: HOW TO: Using sorting / paging on GridView w/o a DataSourceControl DataSource</title><link>http://forums.asp.net/thread/1829892.aspx</link><pubDate>Mon, 30 Jul 2007 06:40:10 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1829892</guid><dc:creator>krishanmanral</dc:creator><author>krishanmanral</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1829892.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=13&amp;PostID=1829892</wfw:commentRss><description>thanks it works for me</description></item><item><title>Re: HOW TO: Using sorting / paging on GridView w/o a DataSourceControl DataSource</title><link>http://forums.asp.net/thread/1827616.aspx</link><pubDate>Fri, 27 Jul 2007 16:30:37 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1827616</guid><dc:creator>shakthi_001</dc:creator><author>shakthi_001</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1827616.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=13&amp;PostID=1827616</wfw:commentRss><description>&lt;p&gt;&amp;nbsp;Hi Ryan thx for the post......i copied the code(&lt;font&gt;&lt;strong&gt;&lt;a href="http://blogs.strongcoders.com/r.ashx?1D" target="_blank"&gt;&lt;font face="Verdana" size="2"&gt;&lt;strong&gt;GridView Sorting/Paging w/o a DataSourceControl DataSource&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt;)&lt;/strong&gt;&lt;/font&gt;and it was working gr8.....but i moved the PopulatePublishersGridView() from page load to Button_Click.....Once i click the button i can see the Grid.....but if try clicking header text for sorting iam getting an message &amp;quot;NO DATA FOUND&amp;quot;.....even if i click page number same error...but every thing was fine if it is in page_load......can plz tell me the problem...................thank you&lt;br /&gt;&lt;/p&gt;</description></item><item><title>Re: HOW TO: Using sorting / paging on GridView w/o a DataSourceControl DataSource</title><link>http://forums.asp.net/thread/1826630.aspx</link><pubDate>Fri, 27 Jul 2007 07:00:42 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1826630</guid><dc:creator>osmanmz</dc:creator><author>osmanmz</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1826630.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=13&amp;PostID=1826630</wfw:commentRss><description>&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Hi&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Store&amp;nbsp;your sort direction&amp;nbsp;in a viewStateVariable.&lt;/p&gt;
&lt;p&gt;Save the last direction once you&amp;#39;re completed sorting.&amp;nbsp; I&amp;#39;ve used three states below:&amp;nbsp; ASC, DESC, unsorted:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;(In &amp;quot;grdvwdesignmaster_Sorting&amp;quot; &lt;strong&gt;change&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;dataView.Sort = e.SortExpression + &lt;font color="#800000" size="2"&gt;&amp;quot; &amp;quot;&lt;/font&gt;&lt;font size="2"&gt; + ConvertSortDir(e.SortDirection);&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &amp;quot;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;to:&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;if (GridViewSortDirection.Length &amp;gt; 0)&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;dataView.Sort = e.SortExpression + &lt;font color="#800000" size="2"&gt;&amp;quot; &amp;quot;&lt;/font&gt;&lt;font size="2"&gt; + GridViewSortDirection;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;ChangeSortDirection();&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ViewState property &amp;amp; function:&lt;/strong&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt; GridViewSortDirection&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;get&lt;/font&gt;&lt;font size="2"&gt; { &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;return&lt;/font&gt;&lt;font size="2"&gt; ViewState[&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&amp;quot;SortDirection&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;] &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;as&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt; ?? &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&amp;quot;ASC&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;; }&lt;/font&gt;&lt;/p&gt;&lt;font color="#0000ff" size="2"&gt;set&lt;/font&gt;&lt;font size="2"&gt; { ViewState[&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&amp;quot;SortDirection&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;] = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;value&lt;/font&gt;&lt;font size="2"&gt;; }&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;}&lt;/p&gt;&lt;/font&gt;
&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;font color="#0000ff" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt; ChangeSortDirection()&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;{&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;switch&lt;/font&gt;&lt;font size="2"&gt; (GridViewSortDirection)&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;{&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;case&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&amp;quot;ASC&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;GridViewSortDirection = &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&amp;quot;DESC&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;break&lt;/font&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;case&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&amp;quot;DESC&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;:&lt;/p&gt;GridViewSortDirection = &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;break&lt;/font&gt;&lt;font size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;default&lt;/font&gt;&lt;font size="2"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;GridViewSortDirection = &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&amp;quot;ASC&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;break&lt;/font&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;}&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;return&lt;/font&gt;&lt;font size="2"&gt; GridViewSortDirection;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt; GridViewSortDirection&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;{&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;get&lt;/font&gt;&lt;font size="2"&gt; { &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;return&lt;/font&gt;&lt;font size="2"&gt; ViewState[&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&amp;quot;SortDirection&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;] &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;as&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt; ?? &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&amp;quot;ASC&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;; }&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;set&lt;/font&gt;&lt;font size="2"&gt; { ViewState[&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&amp;quot;SortDirection&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;] = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;value&lt;/font&gt;&lt;font size="2"&gt;; }&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;&lt;/font&gt;</description></item><item><title>Re: HOW TO: Using sorting / paging on GridView w/o a DataSourceControl DataSource</title><link>http://forums.asp.net/thread/1826545.aspx</link><pubDate>Fri, 27 Jul 2007 05:58:42 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1826545</guid><dc:creator>krishanmanral</dc:creator><author>krishanmanral</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1826545.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=13&amp;PostID=1826545</wfw:commentRss><description>&lt;p&gt;&lt;strong&gt;i m having problem that when i select any header item for sorting i got the same result of sortdirection = acsending every time.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;ConvertSortDirectionToSql function alwawys returns &amp;quot;Asc&amp;quot; what should i do next&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;my code is as below &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;font color="#0000ff" size="2"&gt;private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt; ConvertSortDir(&lt;/font&gt;&lt;font color="#008080" size="2"&gt;SortDirection&lt;/font&gt;&lt;font size="2"&gt; sortDireciton)&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;{&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt; newSortDirection = &lt;/font&gt;&lt;font color="#008080" size="2"&gt;String&lt;/font&gt;&lt;font size="2"&gt;.Empty;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;switch&lt;/font&gt;&lt;font size="2"&gt; (sortDireciton)&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;case&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#008080" size="2"&gt;SortDirection&lt;/font&gt;&lt;font size="2"&gt;.Ascending:&lt;/p&gt;newSortDirection = &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&amp;quot;ASC&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;break&lt;/font&gt;&lt;font size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;case&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#008080" size="2"&gt;SortDirection&lt;/font&gt;&lt;font size="2"&gt;.Descending:&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;newSortDirection = &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&amp;quot;DESC&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;break&lt;/font&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;}&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;return&lt;/font&gt;&lt;font size="2"&gt; newSortDirection;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;}&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;protected&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;void&lt;/font&gt;&lt;font size="2"&gt; grdvwdesignmaster_Sorting(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;object&lt;/font&gt;&lt;font size="2"&gt; sender, &lt;/font&gt;&lt;font color="#008080" size="2"&gt;GridViewSortEventArgs&lt;/font&gt;&lt;font size="2"&gt; e)&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;{&lt;/p&gt;&lt;/font&gt;&lt;font color="#008080" size="2"&gt;DataTable&lt;/font&gt;&lt;font size="2"&gt; objds1 = (&lt;/font&gt;&lt;font color="#008080" size="2"&gt;DataTable&lt;/font&gt;&lt;font size="2"&gt;)Session[&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&amp;quot;desmas&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;];&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;if&lt;/font&gt;&lt;font size="2"&gt; (objds1 != &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;null&lt;/font&gt;&lt;font size="2"&gt;)&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008080" size="2"&gt;DataView&lt;/font&gt;&lt;font size="2"&gt; dataView = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#008080" size="2"&gt;DataView&lt;/font&gt;&lt;font size="2"&gt;(objds1);&lt;/p&gt;dataView.Sort = e.SortExpression + &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&amp;quot; &amp;quot;&lt;/font&gt;&lt;font size="2"&gt; + ConvertSortDir(e.SortDirection);&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;grdvwdesignmaster.DataSource = dataView;&lt;/p&gt;
&lt;p&gt;grdvwdesignmaster.DataBind();&lt;/p&gt;
&lt;p&gt;} &lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;&lt;/font&gt;</description></item><item><title>Re: HOW TO: Using sorting / paging on GridView w/o a DataSourceControl DataSource</title><link>http://forums.asp.net/thread/1826544.aspx</link><pubDate>Fri, 27 Jul 2007 05:57:38 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1826544</guid><dc:creator>krishanmanral</dc:creator><author>krishanmanral</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1826544.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=13&amp;PostID=1826544</wfw:commentRss><description>&lt;p&gt;&lt;strong&gt;i m having problem that when i select any header item for sorting i got the same result of sortdirection = acsending every time.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;ConvertSortDirectionToSql function alwawys returns &amp;quot;Asc&amp;quot; what should i do next&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: HOW TO: Using sorting / paging on GridView w/o a DataSourceControl DataSource</title><link>http://forums.asp.net/thread/1822132.aspx</link><pubDate>Wed, 25 Jul 2007 08:31:18 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1822132</guid><dc:creator>osmanmz</dc:creator><author>osmanmz</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1822132.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=13&amp;PostID=1822132</wfw:commentRss><description>&lt;p&gt;Thanks for the post its helped a great deal.&lt;/p&gt;
&lt;p&gt;How is it that your page does an auto postback on sorting or paging.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;I&amp;#39;m using the following code which is very similar,&amp;nbsp; it does the sorting or paging only when I click a button on the page, not when I sort or page.&lt;/p&gt;&amp;nbsp;i.e. it is a delayed reaction.&amp;nbsp; I&amp;#39;ve also had to add the an invalid postback or call argument error with the suggestion of setting &lt;font color="#ff0000" size="2"&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;
&lt;p&gt;EnableEventValidation&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;false&amp;quot; which resolves that issue:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;The only difference is that I&amp;#39;ve using a Master page.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;Please have a look at my code below, I&amp;#39;ve attached the code for the GridView.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;Thanks and regards&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;Mohamed&lt;/font&gt;&lt;/p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font size="2"&gt;&amp;lt;%&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;@&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#800000" size="2"&gt;Page&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;Language&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;C#&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;MasterPageFile&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;~/ShareX.master&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;AutoEventWireup&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;true&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;EnableEventValidation&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;false&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;CodeBehind&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;BrokerDailyTrade.aspx.cs&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;Inherits&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;ShareXIntranet.BrokerDailyTradeForm&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; %&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&amp;lt;%&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;@&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#800000" size="2"&gt;mastertype&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;virtualpath&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;~/ShareX.master&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; %&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#800000" size="2"&gt;Content&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;ID&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;Content1&amp;quot;&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;ContentPlaceHolderID&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;ContentPlaceHolder1&amp;quot;&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;Runat&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;Server&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;...&lt;/font&gt;&lt;/p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#800000" size="2"&gt;GridView&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;id&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;gridViewBrokerDailyTrade&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;runat&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;server&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;AutoGenerateColumns&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;false&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;DataKeyNames&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;ipkBrokerDailyTradeID&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;OnSelectedIndexChanged&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;gridViewBrokerDailyTrade_SelectedIndexChanged&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;AllowPaging&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;true&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;AllowSorting&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;true&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;OnPageIndexChanging&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;gridViewBrokerDailyTrade_PageIndexChanging&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;OnSorting&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;gridViewBrokerDailyTrade_Sorting&amp;quot;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;PagerSettings-Mode&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;NumericFirstLast&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;PageSize&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;25&amp;quot;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;Columns&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#800000" size="2"&gt;BoundField&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;ReadOnly&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;True&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;DataField&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;ipkBrokerDailyTradeID&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;HeaderText&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;ipkTransactionTradeDetailID&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;Visible&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;False&amp;quot;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#800000" size="2"&gt;BoundField&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#800000" size="2"&gt;BoundField&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;DataField&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;dtTrade&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;HeaderText&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;Trade date&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;DataFormatString&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;{0:dd MMM yyyy}&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;HtmlEncode&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;False&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;SortExpression&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;dtTrade&amp;quot;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#800000" size="2"&gt;BoundField&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#800000" size="2"&gt;BoundField&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;DataField&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;dYieldAmount&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;HeaderText&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;Yield amount&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;DataFormatString&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;{0:C}&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;HtmlEncode&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;False&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;SortExpression&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;dYieldAmount&amp;quot;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#800000" size="2"&gt;BoundField&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#800000" size="2"&gt;BoundField&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;DataField&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;dtYieldAmountPaid&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;HeaderText&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;Paid date&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;DataFormatString&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;{0:dd MMM yyyy}&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;HtmlEncode&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;False&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;SortExpression&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;dtYieldAmountPaid&amp;quot;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#800000" size="2"&gt;BoundField&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#800000" size="2"&gt;ButtonField&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;Text&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;Select&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;CommandName&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;Select&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;/&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000" size="2"&gt;Columns&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;EmptyDataTemplate&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#800000" size="2"&gt;Label&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;id&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;lblGridNoData&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;runat&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;server&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;Text&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;There are no broker daily trades awaiting processing.&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;ForeColor&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;Red&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;Font-Bold&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;True&amp;quot;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#800000" size="2"&gt;Label&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000" size="2"&gt;EmptyDataTemplate&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#800000" size="2"&gt;GridView&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#800000" size="2"&gt;SqlDataSource&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;ID&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;SqlDataSource1&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;runat&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;server&amp;quot;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000" size="2"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;font color="#800000" size="2"&gt;SqlDataSource&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&amp;lt;!--&amp;lt;asp:BoundField DataField=&amp;quot;exCustom_BrokerName&amp;quot; HeaderText=&amp;quot;Broker&amp;quot;&amp;gt;&amp;lt;/asp:BoundField&amp;gt;--&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;</description></item><item><title>Re: HOW TO: Using sorting / paging on GridView w/o a DataSourceControl DataSource</title><link>http://forums.asp.net/thread/1802669.aspx</link><pubDate>Fri, 13 Jul 2007 15:48:10 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1802669</guid><dc:creator>ajrich</dc:creator><author>ajrich</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1802669.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=13&amp;PostID=1802669</wfw:commentRss><description>&lt;p&gt;Hi, thanks for the post.&amp;nbsp; Although I was never able to get this working without manually changing the sort direction between postbacks&amp;nbsp;(for some reason it would always stay ascending) I did think of a different approach to this problem that worked for me.&lt;/p&gt;
&lt;p&gt;One problem I have with this is that felt so...DataGrid-y.&amp;nbsp; I&amp;nbsp;disliked the cumbersome work needed for paging and sorting on the 1.0/1.1 DataGrid and was thrilled to see that the GridView dealt with those problem inside of it&amp;#39;s &amp;quot;Black Box&amp;quot;.&amp;nbsp; So, after hours trying to get manual sorting things to work in a clean manner I thought maybe I could trick it into thinking my on-the-fly data source is just a standard sortable/pagable datasource (datatable, datagrid or dataview).&amp;nbsp; &lt;/p&gt;
&lt;p&gt;What I did is create a class, as explained in an example on msdn, that has an attribute explaining that the shared method is the Select statement to be used for the object data source.&amp;nbsp; Here&amp;#39;s a snippit of the code I used.&lt;/p&gt;
&lt;blockquote&gt;&lt;pre class="coloredcode"&gt;&lt;span class="kwd"&gt;Namespace&lt;/span&gt; IB
    &lt;span class="cmt"&gt;&amp;#39;&amp;#39;&amp;#39; &amp;lt;summary&amp;gt;
    &amp;#39;&amp;#39;&amp;#39; Class writen to bind to the object data source.  I need to do this so that I can dynamically change the data based on the filters chosen via the dropdowns
    &amp;#39;&amp;#39;&amp;#39; &amp;lt;/summary&amp;gt;
    &amp;#39;&amp;#39;&amp;#39; &amp;lt;remarks&amp;gt;&amp;lt;/remarks&amp;gt;
&lt;/span&gt;    &lt;strong&gt;&amp;lt;ComponentModel.DataObject(&lt;span class="kwd"&gt;True&lt;/span&gt;)&amp;gt; _&lt;/strong&gt;
    &lt;span class="kwd"&gt;Public Class&lt;/span&gt; FilteredDataManager
        &lt;strong&gt;&amp;lt;ComponentModel.DataObjectMethod(ComponentModel.DataObjectMethodType.&lt;span class="kwd"&gt;Select&lt;/span&gt;)&amp;gt; _&lt;/strong&gt;
        &lt;span class="kwd"&gt;Public Shared Function&lt;/span&gt; GetFilteredNewsData() &lt;span class="kwd"&gt;As&lt;/span&gt; DataView
            &lt;span class="kwd"&gt;Dim&lt;/span&gt; dt &lt;span class="kwd"&gt;As&lt;/span&gt; DataTable = &lt;span class="kwd"&gt;Nothing
            &lt;/span&gt;
            &lt;span class="kwd"&gt;Try&lt;/span&gt;
                Using cm &lt;span class="kwd"&gt;As New&lt;/span&gt; Baird.Internet.ContentManagers.CMSNewsContentManager
                    dt = cm.GetNewsData()
                &lt;span class="kwd"&gt;End&lt;/span&gt; Using&lt;/pre&gt;&lt;pre class="coloredcode"&gt;	&amp;#39;&amp;lt;Custom filtering based on selections on drop downs performed here&amp;gt;
            &lt;span class="kwd"&gt;Catch&lt;/span&gt; ex &lt;span class="kwd"&gt;As&lt;/span&gt; Exception
                &lt;span class="kwd"&gt;Throw New&lt;/span&gt; ApplicationException(&lt;span class="kwd"&gt;String&lt;/span&gt;.Format(&lt;span class="st"&gt;&amp;quot;IB.FilteredDataManager.GetFilteredNewsData: Error {0}{1}&amp;quot;&lt;/span&gt;, vbCrLf, ex.ToString()))
            &lt;span class="kwd"&gt;End Try

            Return&lt;/span&gt; dt
        &lt;span class="kwd"&gt;End Function
    End Class
End Namespace&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;Now that you have this class you can set this as the source to your ObjectDataSource as so (you can do this in code on even in design mode):&amp;nbsp;&lt;span class="kwd"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="kwd"&gt;&amp;nbsp;&lt;pre&gt;&lt;/pre&gt;&lt;pre class="coloredcode"&gt;&lt;blockquote&gt;
&lt;pre class="coloredcode"&gt;&amp;lt;&lt;span class="tag"&gt;asp:GridView&lt;/span&gt;&lt;span class="attr"&gt; ID=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;GridView&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; runat=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; AutoGenerateColumns=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;False&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; DataKeyNames=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;NewsLinkID&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; AllowSorting=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderStyle-HorizontalAlign=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;left&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; GridLines=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;none&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; Width=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;100%&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; DataSourceID=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;&lt;strong&gt;ObjectDataSourceNewsData&lt;/strong&gt;&amp;quot;&lt;/span&gt;&amp;gt;&amp;nbsp;&lt;/pre&gt;&lt;/blockquote&gt;
&lt;/pre&gt;
&lt;blockquote&gt;&lt;pre class="coloredcode"&gt;&amp;lt;&lt;span class="tag"&gt;asp:ObjectDataSource&lt;/span&gt;&lt;span class="attr"&gt; ID=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;ObjectDataSourceNewsData&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; runat=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; OldValuesParameterFormatString=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;original_{0}&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SelectMethod=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;GetFilteredNewsData&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; TypeName=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;&lt;strong&gt;UI.News.IB.FilteredDataManager&lt;/strong&gt;&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span class="tag"&gt;asp:ObjectDataSource&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;strong&gt;As long as you return a DataSet, DataTable or DataView, the GridView handles sorting and paging automagically - which is how I like it.&lt;/strong&gt;&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;Hope this helps someone that has a similar issue as I. &lt;br /&gt;&lt;br /&gt;Thanks.&lt;/span&gt;</description></item><item><title>Re: HOW TO: Using sorting / paging on GridView w/o a DataSourceControl DataSource</title><link>http://forums.asp.net/thread/1796924.aspx</link><pubDate>Tue, 10 Jul 2007 22:51:47 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1796924</guid><dc:creator>Mr Blue Coat</dc:creator><author>Mr Blue Coat</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1796924.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=13&amp;PostID=1796924</wfw:commentRss><description>&lt;p&gt;For some reason, this forum tool replaced the word &amp;quot;E x p r e s s i o n&amp;quot; with &amp;quot;BLOCKED E X P R E S S I O N&amp;quot; above (remove spaces between letters).&lt;br /&gt;&lt;/p&gt;</description></item><item><title>Re: HOW TO: Using sorting / paging on GridView w/o a DataSourceControl DataSource</title><link>http://forums.asp.net/thread/1796903.aspx</link><pubDate>Tue, 10 Jul 2007 22:35:06 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1796903</guid><dc:creator>Mr Blue Coat</dc:creator><author>Mr Blue Coat</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1796903.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=13&amp;PostID=1796903</wfw:commentRss><description>&lt;p&gt;&amp;nbsp;Excellent post - Thanks!&lt;/p&gt;&lt;p&gt;Here&amp;#39;s my newbie ASP.NET variation for SQL Server using Session variables (instead of ViewState) and support for paging, sorting, data filtering and selecting:&lt;/p&gt;&lt;p&gt;&lt;b&gt;&amp;nbsp;web.config:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;connectionStrings&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name=&amp;quot;MyConnectionString&amp;quot; connectionString=&amp;quot;Data Source=&amp;lt;SERVER&amp;gt;;Initial Catalog=&amp;lt;DATABASE&amp;gt;;Persist Security Info=True;User ID=&amp;lt;USER&amp;gt;;Password=&amp;lt;PASSWORD&amp;gt;&amp;quot; providerName=&amp;quot;System.Data.SqlClient&amp;quot;/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/connectionStrings&amp;gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;app_code (DatabaseConnection.vb):&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Imports Microsoft.VisualBasic&lt;br /&gt;Imports System.Data&lt;br /&gt;Imports System.Data.SqlClient&lt;br /&gt;&lt;br /&gt;Public Class DatabaseConnection&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Shared connection As New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings(&amp;quot;MyConnectionString&amp;quot;).ConnectionString)&lt;br /&gt;&lt;br /&gt;End Class&lt;/p&gt;&lt;p&gt;&lt;b&gt;app_code (Utils.vb):&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Imports Microsoft.VisualBasic&lt;br /&gt;Imports System.Web.HttpContext&lt;br /&gt;Imports System.Data&lt;br /&gt;Imports System.Data.SqlClient&lt;br /&gt;Imports DatabaseConnection&lt;br /&gt;&lt;br /&gt;Public Class Utils&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Public Shared Function GetCompareStatement(ByVal firstValue As String, ByVal secondValue As String, ByVal operation As String) As String&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select Case operation&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case &amp;quot;Contains&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return &amp;quot;LIKE &amp;#39;%&amp;quot; + firstValue + &amp;quot;%&amp;#39; &amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case &amp;quot;Begins with&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return &amp;quot;LIKE &amp;#39;&amp;quot; + firstValue + &amp;quot;%&amp;#39; &amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case &amp;quot;Ends with&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return &amp;quot;LIKE &amp;#39;%&amp;quot; + firstValue + &amp;quot;&amp;#39; &amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case &amp;quot;Equals&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return &amp;quot;= &amp;#39;&amp;quot; + firstValue + &amp;quot;&amp;#39; &amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case &amp;quot;Date Equals&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return &amp;quot;= CONVERT(DATETIME, &amp;#39;&amp;quot; + firstValue + &amp;quot;&amp;#39;, 101) &amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case &amp;quot;After&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return &amp;quot;&amp;gt; CONVERT(DATETIME, &amp;#39;&amp;quot; + firstValue + &amp;quot;&amp;#39;, 101) &amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case &amp;quot;Before&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return &amp;quot;&amp;lt; CONVERT(DATETIME, &amp;#39;&amp;quot; + firstValue + &amp;quot;&amp;#39;, 101) &amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case &amp;quot;Between&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return &amp;quot;BETWEEN CONVERT(DATETIME, &amp;#39;&amp;quot; + firstValue + &amp;quot;&amp;#39;, 101) AND CONVERT(DATETIME, &amp;#39;&amp;quot; + secondValue + &amp;quot;&amp;#39;, 101) &amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case Else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return &amp;quot;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Select&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Shared Sub BindPagingSortingGridView(ByVal query As String, ByVal gridViewControl As GridView)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;Binds Paging/Sorting GridView with data from the specified query&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim sqlComm As SqlCommand&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim sqlReader As SqlDataReader&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim dataTableControl As New DataTable()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim dataTableRowCount As Integer&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlComm = New SqlCommand(query, connection)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlReader = sqlComm.ExecuteReader()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataTableControl.Load(sqlReader)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataTableRowCount = dataTableControl.Rows.Count&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If dataTableRowCount &amp;gt; 0 Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gridViewControl.DataSource = dataTableControl&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gridViewControl.DataBind()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlReader.Close()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Shared Function SortDataTable(ByVal dataTable As DataTable, ByVal isPageIndexChanging As Boolean) As DataView&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Not dataTable Is Nothing Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim dataView As New DataView(dataTable)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If GridViewSortExpression &amp;lt;&amp;gt; String.Empty Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If isPageIndexChanging Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataView.Sort = String.Format(&amp;quot;{0} {1}&amp;quot;, GridViewSortExpression, GridViewSortDirection)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataView.Sort = String.Format(&amp;quot;{0} {1}&amp;quot;, GridViewSortExpression, GetSortDirection())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return dataView&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return New DataView()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Shared Property GridViewSortBLOCKED EXPRESSION As String&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return IIf(Current.Session(&amp;quot;SortBLOCKED EXPRESSION = Nothing, String.Empty, Current.Session(&amp;quot;SortBLOCKED EXPRESSION)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set(ByVal value As String)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Current.Session(&amp;quot;SortBLOCKED EXPRESSION = value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Set&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Property&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Shared Function GetSortDirection() As String&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select Case GridViewSortDirection&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case &amp;quot;ASC&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GridViewSortDirection = &amp;quot;DESC&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case &amp;quot;DESC&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GridViewSortDirection = &amp;quot;ASC&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Select&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return GridViewSortDirection&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Shared Property GridViewSortDirection() As String&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return IIf(Current.Session(&amp;quot;SortDirection&amp;quot;) = Nothing, &amp;quot;ASC&amp;quot;, Current.Session(&amp;quot;SortDirection&amp;quot;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set(ByVal value As String)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Current.Session(&amp;quot;SortDirection&amp;quot;) = value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Set&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Property&lt;br /&gt;&lt;br /&gt;End Class &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;aspx page:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:GridView ID=&amp;quot;SupplierGridView&amp;quot; CssClass=&amp;quot;datatable&amp;quot; Width=&amp;quot;100%&amp;quot; AllowPaging=&amp;quot;True&amp;quot; AllowSorting=&amp;quot;True&amp;quot; AutoGenerateColumns=&amp;quot;False&amp;quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EmptyDataText=&amp;quot;No records found&amp;quot; PageSize=&amp;quot;15&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Columns&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ButtonField ButtonType=&amp;quot;Link&amp;quot; Text=&amp;quot;Select&amp;quot; CommandName=&amp;quot;SELECT&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:BoundField DataField=&amp;quot;ENT_SUPPLIER_NBR&amp;quot; HeaderText=&amp;quot;ESD Number&amp;quot; SortExpression=&amp;quot;ENT_SUPPLIER_NBR&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:BoundField DataField=&amp;quot;SUP_NAME1&amp;quot; HeaderText=&amp;quot;Name&amp;quot; SortExpression=&amp;quot;SUP_NAME1&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:BoundField DataField=&amp;quot;STREET&amp;quot; HeaderText=&amp;quot;Street&amp;quot; SortExpression=&amp;quot;STREET&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:BoundField DataField=&amp;quot;CITY&amp;quot; HeaderText=&amp;quot;City&amp;quot; SortExpression=&amp;quot;CITY&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:BoundField DataField=&amp;quot;STATE_REGION&amp;quot; HeaderText=&amp;quot;State&amp;quot; SortExpression=&amp;quot;STATE_REGION&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:BoundField DataField=&amp;quot;ACTIVE&amp;quot; HeaderText=&amp;quot;ACTIVE&amp;quot; SortExpression=&amp;quot;ACTIVE&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Columns&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/asp:GridView&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;b&gt;vb page:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Imports System.Data&lt;br /&gt;Imports System.Data.SqlClient&lt;br /&gt;Imports Utils&lt;br /&gt;Imports DatabaseConnection&lt;/p&gt;&lt;p&gt;...&lt;/p&gt;&lt;p&gt;Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Not Page.IsPostBack Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Clear user paging/sort&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Session(&amp;quot;CurrentPage&amp;quot;) = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Session(&amp;quot;SortBLOCKED EXPRESSION = Nothing&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GridViewSortDirection = &amp;quot;ASC&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Set current query&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Session(&amp;quot;CurrentQuery&amp;quot;) = &amp;quot;SELECT ENT_SUPPLIER_NBR, SUP_NAME1, STREET, CITY, STATE_REGION, Active FROM INFO_SUPPLIERS WHERE ENT_SUPPLIER_NBR IS NOT NULL AND ACTIVE = &amp;#39;Active&amp;#39; ORDER BY SUP_NAME1 ASC&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Bind GridView to current query&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connection.Open()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BindPagingSortingGridView(Session(&amp;quot;CurrentQuery&amp;quot;), SupplierGridView)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connection.Close()&lt;br /&gt;&lt;br /&gt;End Sub &lt;/p&gt;&lt;p&gt;&amp;nbsp;Protected Sub ApplyFilterButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ApplyFilterButton.Click&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Filter GridView contents&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim tempQuery As String = &amp;quot;SELECT ENT_SUPPLIER_NBR, SUP_NAME1, STREET, CITY, STATE_REGION, Active FROM INFO_Suppliers WHERE ENT_SUPPLIER_NBR IS NOT NULL&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Filter ESD Number&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Len(EsdNumberTextBox.Text) &amp;gt; 0 Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tempQuery += &amp;quot; AND ENT_SUPPLIER_NBR &amp;quot; &amp;amp; GetCompareStatement(EsdNumberTextBox.Text, Nothing, EsdNumberDropDownList.SelectedValue)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Filter Supplier Name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Len(SupplierNameTextBox.Text) &amp;gt; 0 Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tempQuery += &amp;quot; AND SUP_NAME1 &amp;quot; &amp;amp; GetCompareStatement(SupplierNameTextBox.Text, Nothing, SupplierNameDropDownList.SelectedValue)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Filter Supplier City&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Len(SupplierCityTextBox.Text) &amp;gt; 0 Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tempQuery += &amp;quot; AND CITY &amp;quot; &amp;amp; GetCompareStatement(SupplierCityTextBox.Text, Nothing, SupplierCityDropDownList.SelectedValue)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Filter Supplier State&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Len(SupplierStateTextBox.Text) &amp;gt; 0 Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tempQuery += &amp;quot; AND STATE_REGION &amp;quot; &amp;amp; GetCompareStatement(SupplierStateTextBox.Text, Nothing, SupplierStateDropDownList.SelectedValue)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Filter Active&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If ActiveDropDownList.SelectedIndex &amp;gt; 0 Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tempQuery += &amp;quot; AND Active = &amp;#39;&amp;quot; &amp;amp; ActiveDropDownList.SelectedValue &amp;amp; &amp;quot;&amp;#39;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Clear user paging/sort&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Session(&amp;quot;CurrentPage&amp;quot;) = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Session(&amp;quot;SortBLOCKED EXPRESSION = Nothing&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GridViewSortDirection = &amp;quot;ASC&amp;quot;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Update current query&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Session(&amp;quot;CurrentQuery&amp;quot;) = Trim(tempQuery) &amp;amp; &amp;quot; ORDER BY SUP_NAME1 ASC&amp;quot;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Bind GridView to current query&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connection.Open()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BindPagingSortingGridView(Session(&amp;quot;CurrentQuery&amp;quot;), SupplierGridView)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connection.Close()&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; Protected Sub ShowAllButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ShowAllButton.Click&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Show all suppliers&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Clear filter options&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EsdNumberDropDownList.SelectedIndex = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SupplierNameDropDownList.SelectedIndex = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SupplierCityDropDownList.SelectedIndex = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SupplierStateDropDownList.SelectedIndex = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ActiveDropDownList.SelectedIndex = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EsdNumberTextBox.Text = &amp;quot;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SupplierNameTextBox.Text = &amp;quot;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SupplierCityTextBox.Text = &amp;quot;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SupplierStateTextBox.Text = &amp;quot;&amp;quot;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Clear user paging/sort&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Session(&amp;quot;CurrentPage&amp;quot;) = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Session(&amp;quot;SortDirection&amp;quot;) = Nothing&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Update current query&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Session(&amp;quot;CurrentQuery&amp;quot;) = &amp;quot;SELECT ENT_SUPPLIER_NBR, SUP_NAME1, STREET, CITY, STATE_REGION, Active FROM INFO_Suppliers WHERE ENT_SUPPLIER_NBR IS NOT NULL ORDER BY SUP_NAME1 ASC&amp;quot;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Bind GridView to current query&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connection.Open()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BindPagingSortingGridView(Session(&amp;quot;CurrentQuery&amp;quot;), SupplierGridView)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connection.Close()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; Protected Sub SupplierGridView_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles SupplierGridView.SelectedIndexChanged&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Bind current data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SupplierGridView.DataSource = SortDataTable(SupplierGridView.DataSource, True)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SupplierGridView.PageIndex = Session(&amp;quot;CurrentPage&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SupplierGridView.DataBind()&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; &amp;lt;This is the row the user selected -- do with it what you want&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; supplierNumber.Text = SupplierGridView.SelectedRow.Cells(1).Text&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; supplierName.Text = SupplierGridView.SelectedRow.Cells(2).Text&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; supplierStreet.Text = SupplierGridView.SelectedRow.Cells(3).Text&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Clear session variables&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Session(&amp;quot;CurrentPage&amp;quot;) = Nothing&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Session(&amp;quot;SortBLOCKED EXPRESSION = Nothing&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Session(&amp;quot;CurrentQuery&amp;quot;) = Nothing&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Protected Sub SupplierGridView_Sorting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSortEventArgs) Handles SupplierGridView.Sorting&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GridViewSortExpression = e.SortExpression&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pageIndex As Integer = SupplierGridView.PageIndex&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If SupplierGridView.DataSource.GetType().ToString = &amp;quot;System.Data.DataTable&amp;quot; Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SupplierGridView.DataSource = SortDataTable(SupplierGridView.DataSource, False)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SupplierGridView.PageIndex = Session(&amp;quot;CurrentPage&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SupplierGridView.DataBind()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Protected Sub SupplierGridView_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles SupplierGridView.PageIndexChanging&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If SupplierGridView.DataSource.GetType().ToString = &amp;quot;System.Data.DataTable&amp;quot; Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SupplierGridView.DataSource = SortDataTable(SupplierGridView.DataSource, True)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SupplierGridView.PageIndex = e.NewPageIndex&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Session(&amp;quot;CurrentPage&amp;quot;) = e.NewPageIndex&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SupplierGridView.DataBind()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;i&gt;Hopefully this helps someone out there as much as this forum posting helped me!&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: HOW TO: Using sorting / paging on GridView w/o a DataSourceControl DataSource</title><link>http://forums.asp.net/thread/1796796.aspx</link><pubDate>Tue, 10 Jul 2007 21:18:01 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1796796</guid><dc:creator>pelegk2</dc:creator><author>pelegk2</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1796796.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=13&amp;PostID=1796796</wfw:commentRss><description>when i am using the &lt;font size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;productsGridView_PageIndexChanging&lt;/p&gt;
&lt;p&gt;i see in the debbuger that the function is called twice&lt;/p&gt;
&lt;p&gt;why is that?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;thnaks i nadvance&lt;/p&gt;
&lt;p&gt;peleg&lt;/p&gt;&lt;/font&gt;</description></item><item><title>Re: HOW TO: Using sorting / paging on GridView w/o a DataSourceControl DataSource</title><link>http://forums.asp.net/thread/1788621.aspx</link><pubDate>Thu, 05 Jul 2007 14:52:30 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1788621</guid><dc:creator>peterthegreat</dc:creator><author>peterthegreat</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1788621.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=13&amp;PostID=1788621</wfw:commentRss><description>&lt;p&gt;like you i am a new member,also to asp.net.&lt;/p&gt;
&lt;p&gt;my question is can you not accomplish this via asp.net?&lt;/p&gt;
&lt;p&gt;i am not sure what you are trying to achieve.but in time i suppose i will come across its use.so i have decided to save a copy of code...just in case.&lt;/p&gt;
&lt;p&gt;i would like to create own websites,like you.&lt;/p&gt;
&lt;p&gt;are there any useful sites where you can get useful code/examples from&lt;/p&gt;</description></item><item><title>Re: HOW TO: Using sorting / paging on GridView w/o a DataSourceControl DataSource</title><link>http://forums.asp.net/thread/1788560.aspx</link><pubDate>Thu, 05 Jul 2007 14:21:04 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1788560</guid><dc:creator>StrongTypes</dc:creator><author>StrongTypes</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1788560.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=13&amp;PostID=1788560</wfw:commentRss><description>&lt;p&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="/Themes/fan/images/icon-quote.gif"&gt; &lt;strong&gt;mcmillan_associates@hotmail.com:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Ryan - this is very helpful but can you post this code in VB.NET?&lt;/div&gt;&lt;/BLOCKQUOTE&gt; 
&lt;p&gt;There is a &lt;a class="" href="http://community.strongcoders.com/content/VBGridViewSortingPaging.aspx"&gt;&lt;strong&gt;VB.NET version&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Re: HOW TO: Using sorting / paging on GridView w/o a DataSourceControl DataSource</title><link>http://forums.asp.net/thread/1788096.aspx</link><pubDate>Thu, 05 Jul 2007 09:22:01 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1788096</guid><dc:creator>Raafat4</dc:creator><author>Raafat4</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1788096.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=13&amp;PostID=1788096</wfw:commentRss><description>&lt;p&gt;Hi, &lt;/p&gt;
&lt;p&gt;I am Ra&amp;#39;fat not Ryan ,&lt;/p&gt;
&lt;p&gt;But i forget&amp;nbsp; the&amp;nbsp;VB.NET Syntax, specially Function Definition&lt;/p&gt;
&lt;p&gt;Try this code:&lt;/p&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt; ConvertSortDirectionToSql(&lt;/font&gt;&lt;font color="#008080" size="2"&gt;SortDirection&lt;/font&gt;&lt;font size="2"&gt; sortDireciton)&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Dim &lt;/font&gt;&lt;font size="2"&gt;newSortDirection as String&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;newSortDirection = &amp;quot; &amp;quot;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;switch&lt;/font&gt;&lt;font size="2"&gt; (sortDireciton)&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;{&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;case&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#008080" size="2"&gt;SortDirection&lt;/font&gt;&lt;font size="2"&gt;.Ascending:&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;newSortDirection = &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&amp;quot;ASC&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;break&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;case&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#008080" size="2"&gt;SortDirection&lt;/font&gt;&lt;font size="2"&gt;.Descending:&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;newSortDirection = &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&amp;quot;DESC&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;break&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;}&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;return&lt;/font&gt;&lt;font size="2"&gt; newSortDirection&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;There is an event in the GridView events called Sorting&amp;nbsp;,put the code velow in it:&lt;/p&gt;&lt;font color="#0000ff" size="2"&gt;protected&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;void&lt;/font&gt;&lt;font size="2"&gt; gvDataSources_Sorting(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;object&lt;/font&gt;&lt;font size="2"&gt; sender, &lt;/font&gt;&lt;font color="#008080" size="2"&gt;GridViewSortEventArgs&lt;/font&gt;&lt;font size="2"&gt; e)&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;{&lt;/p&gt;Dim dt as new DataTable&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;dt = LoadDataSources().Tables(0);&amp;nbsp;&amp;#39; LoadDataSources() function that return DataSet and the GridView Get its data from it&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;if&lt;/font&gt;&lt;font size="2"&gt; (dt&amp;nbsp;&amp;lt;&amp;gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;null&lt;/font&gt;&lt;font size="2"&gt;)&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;Dim dvSortas new DataView(dt)&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;dvSort.Sort = e.SortExpression&lt;/p&gt;dvSort.Sort = e.SortExpression&amp;nbsp;&amp;amp; &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&amp;quot; &amp;quot;&lt;/font&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;amp; ConvertSortDirectionToSql(e.SortDirection)&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;gvDataSources.DataSource = dvSort&lt;/p&gt;
&lt;p&gt;gvDataSources.DataBind()&lt;/p&gt;
&lt;p&gt;End If&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best Regards&lt;/p&gt;
&lt;p&gt;Ra&amp;#39;fat&lt;/p&gt;&lt;/font&gt;</description></item><item><title>Re: HOW TO: Using sorting / paging on GridView w/o a DataSourceControl DataSource</title><link>http://forums.asp.net/thread/1787506.aspx</link><pubDate>Wed, 04 Jul 2007 23:25:06 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1787506</guid><dc:creator>mcmillan_associates@hotmail.com</dc:creator><author>mcmillan_associates@hotmail.com</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1787506.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=13&amp;PostID=1787506</wfw:commentRss><description>&lt;p&gt;Ryan - this is very helpful but can you post this code in VB.NET?&lt;/p&gt;</description></item></channel></rss>