I have a page that displays several filters grouped in categories which users can select via expand/collapse feature using javascript. After selecting the filters, users need to click on a Submit button to see results which are then displayed on the same page in a gridview. The gridview is nested within a panel with visible="true". The user needs to be able to sort the column headings in the gridview. However, if gridview's SortExpression is used, and I click on the column heading, the gridview is not visible anymore. I need to click on the Submit button again in order to see the sorted gridview. When I do a hard refresh, the gridview is still visible, but when I click on the column heading which runs a _doPostBack javascript, the gridview is not visible. Is there any way to enable column sorting without using the gridview's _doPostBack javascript?
The paging feature is not being used. I've tried to force the page to display the gridview on page_load, but it just doesn't display. The gridview's visible property is set to true by default.
Any advice and suggestions would be appreciated. A snippet of my code is pasted below just in case.
Thanks!
On front-end:
<asp:ImageButton ID="btnSubmit" runat="server" src="images/btn_submit.gif" /> |
<asp:panel ID="panResults" runat="server" Visible="true"> |
<asp:GridView ID="gvInventory" runat="server" Width="100%" CssClass="padded" AllowSorting="true" AllowPaging="False" DataSourceID="dsSearchInventory" AutoGenerateColumns="false" Visible="true"> |
<Columns> |
<asp:TemplateField HeaderText="Reference<br>No." ItemStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Top" SortExpression="RefNum"> |
<ItemTemplate> |
<asp:Label ID="lblRefNum" runat="server" Text='<%# Eval("RefNum") %>'></asp:Label> |
</ItemTemplate> |
</asp:TemplateField> |
</Columns> |
</asp:GridView> |
<asp:SqlDataSource ID="dsSearchInventory" runat="server" ConnectionString="<%$ ConnectionStrings:dbConn %>" ProviderName="<%$ ConnectionStrings:dbConn.ProviderName %>" SelectCommand=""> |
</asp:SqlDataSource> |
</asp:panel> |
On code-behind:
Protected Sub Page_Load(ByVal sender As System.Object, ByVal E As System.EventArgs) Handles MyBase.Load |
If Page.IsPostBack Then |
panResults.Visible = True |
End If |
End Sub |
Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnSubmit.Click |
'Executes dynamic SQL query string |
End Sub |