Forms Data Controls :: How To Change Sort Column Header Text And Retain The Sort Link
Jun 3, 2010I have a simple dynamic gridview with following code -
GV = new GridView();
I have a simple dynamic gridview with following code -
GV = new GridView();
AllowSoting is true on every column of my gridvieww.
i want to remove those underlines in everycolumn ...
how can i do that?
I have a page with a TextBox, a Button, a GridView, and a SqlDataSource. I click the Button to execute the SQL in the TextBox using the SqlDataSource. The SqlDataSource populates the GridView. Everything works as expected until I click a column heading to sort.
When I click a column heading, the GridView disappears and I have to click the Button to display the grid again. When I do, the grid is displayed in the order of the column I clicked.
I don't understand why the GridView is disappearing when I click a column header.
Does anyone know how to fix this so the GridView is sorted and displayed only by clicking the column header?
ASPX:
[Code]....
Code behind:
[Code]....
I have several grid views indide div's, and when I click the Sort header on an open div the div collapses and no sort happens. I believe it is just reloading the entire page but when I surround PageLoad with !ISPostBack then the page redraws as blank. Since the sort script is generated by the GV, I don't know how to stop it from creating side effects.
Here's my code:
<script type="text/javascript" language="javascript">
function toggleDisplay(id) {
var obj = document.getElementById(id);
obj.style.display = (obj.style.display == "none") ? "" : "none";
return false; // cancel the href
}
</script>
[Code]....
In Datagrid if we are using template column and we have hyperlink and this will have only view or edit whether we can sort it. If so how.
View 4 Repliesi have a table which showing the food data from my Model, including Name, Amount, Storage and Expiry Date. I wish to either:
1. Let user click on the column header and sort the column they want
2. Or default showing the food which almost expired on the top of the table
I have a gridview which I am trying to be able to sort by clicking the column header. Currently, I have the column header underlined by turning the 'allow sorting' function to TRUE, but when I click the column header, it does nothing.
here is the code for the page:
Imports System.Data.SqlClient
Imports System.Data
Imports System.IO
Imports System.Collections.Generic
Imports System.Web.UI.WebControls
Partial Class Dashboard
Inherits SmartSessionPage
[Code] ....
i read Matt Berseth article also i downloaded this source. But i can not do sorting event. Everything is ok but sorting is not working.
[Code]....
Is this a good method for displaying a soricon? or are there better ways of doing it;
[URL]
Also when the gridview is first loaded its sorted by a "Date Submitted" field which is sorted on the data source (stored procedure) is there any way of showing the icon then so people know that it is sorted by "Date Submitted" at the moment the icon only shows when someone re-sorts the grid.
Tried this:
<HeaderStyle CssClass="headerstyle" />
And in the css:
.headerstyle a{
text-decoration:none;
color:#7dad4a;
display:block;
}
But nothing...
Just spent about 8 hours googling and looking through this forum for a solution on how to make sure that I can dynamically sort. Here is the situation.
I have 1 Gridview that displays 10 different scenarios based on what button is clicked.
I am also returning only top 10 records. I am doing all of the data binding pragmatically. So I have BoundFields, HyperLinkFields etc.
I also want to sort some records. When I change DataSource SQL statement the gridview somehow remembers what the last sort value was and it errors out saying that value "x" cannot be sorted because it does not exists.
I tried this:
Tried setting gridview1.sqldatasourceid = null; gridview1.allowsorting = false; gridview1.databind();
Here I get an error that says that the data source does not support sorting? Doesnt it say gridview1.allowsorting = false;
I also tried gridview1.sort("", SortDirection.Ascending); This does nothin... except query my database one more time because i have a onSorting event that looks like this:
[Code]....
Here is an example of just one of those SLQ statements inside GetSQLQuery:
[Code]....
In gridview I am able to sort on 1 column as mentioned below, I want to add one more column in sorting, what is the best way to do this,
[Code]....
how to sort DataGrid column. (Say like FirstName) I have done snippet like: (see Bold text) For HTML :
<asp:DataGrid ID="dtgCustomerSearch" runat="server" AllowSorting="true">
<Columns>
<asp:BoundColumn HeaderText="CustomerID" DataField="CustomerID" />
<asp:BoundColumn HeaderText="First Name" DataField="FirstName"
SortExpression="FirstName" />
<asp:BoundColumn HeaderText="Last Name" DataField="LastName"
SortExpression="LastName" />
<asp:BoundColumn HeaderText="Phone No." DataField="Phone" />
<asp:BoundColumn HeaderText="Email ID" DataField="EmailID" />
</Columns>
</asp:DataGrid>
On Page_load I have wrote: this.dtgCustomerSearch.SortCommand += new DataGridSortCommandEventHandler(dtgCustomerSearch_SortCommand);
private void dtgCustomerSearch_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
{
SortExpression = e.SortExpression;
BindTheGrid();
}
string SortExpression
{
set
{
if (ViewState["SortExp"] == null || value != ViewState["SortExp"].ToString())
{
ViewState["SortExp"] = value;
}
else
{
ViewState["SortExp"] = value + " DESC";
}
}
get
{
return ViewState["SortExp"] == null ? string.Empty : ViewState["SortExp"].ToString();
}
}
I have a merged column of firstname and lastname by "Select firstname + lastname from table" but when it appears in the gridview the header text of the column is "Expr1000". How can I change the header text of that merged column?, and I want to change its text into "NAME".
View 3 RepliesWhen I click on my GridView header "End Time" all the rows which contain the string "N/A" disappear.
Here is my code:
[Code]....
Note: GetSortDirection returns "endTime ASC" or "endTime DESC" and save in ViewState:
[Code]....
Then I fill the DataAdapter and use the ViewState info to sort it:
[Code]....
Ive an page with listview.. i'm performing sorting in itemdatabound event like below:
[Code]....
and my listview looks like this:
[Code]....
I want to sort with multiple columns.
Is there a way to Sort a Gridview by a Calculated Column? I have a gridview with template fields using lablels and a linq datasource. Those columns sort just fine. I can not get the Calculated column to sort, because there is no sort expression to use...
View 4 RepliesI have a gridview column named "Job Number" and the number is in this format: 01-04-11-3215, 01-04-11-3216 and so on...
Since the first few characters represent the date I need to sort on the last 4 digits.
I have a datatable as a datasource to a grid view, it has a column amtDue, i would like to be able to sort by this column,, while not displaying it.
View 4 Repliesi have a gridview that has the ability to sort by each of the columns, but suppose if i'm on page 2 of the results and sort any of the columns, it jumps back to page 1. is there a way to keep it on page 2, still have the sorted date work?
View 3 RepliesI have been struggling with this problem for a long time. Does anyone have any clue about this problem? I created a gridview and set the allowsorting to true. This gridview has four columns: Name, Position, StartDate, and EndDate. I want the gridview to be sorted on the EndDate.
Inside of the save event, I called the BindGrid() function to rebind the datasource to the gridview. The changes will shown immediately, but the problem is that the records are not sorting on EndDate. I have to refresh the page manually to get the view sorted.
<asp:GridView ID="gvInfos" runat="server"
CheckBoxEnabled = "true"
ShowEmptyTable = "true"
AutoGenerateColumns = "False"
CssClass = "gv_white"
DataKeyNames = "Id"
GridLines = "None"
Width = "100%"
AllowSorting = "true"
>
<Columns>
<asp:ButtonField CommandName="Select" DataTextField="Name" HeaderText="Name" />
<asp:BoundField DataField="Position" HeaderText="Position" />
<asp:BoundField DataField="StartDate" HeaderText="Start Date"
DataFormatString="{0:Y}" />
<asp:TemplateField HeaderText="End Date" SortExpression="EndDate">
<ItemTemplate>
<%# (((DateTime)Eval("EndDate")).Year == (DateTime.MaxValue.Year) || (DateTime)Eval("EndDate") == null) ? "Present" : ((DateTime)Eval("EndDate")).ToString("y")%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
I have a grid view with manual sorting. In some cells, the data are numeric and datetime. But due to some constrains, the data type on tables are varchar. The problem here is when I sorting those numeric data, it is treated as varchar.Eg: 1, 12, 13, 2, 23, 3, ...But I wanted the order to be: 1, 2, 3, 12, 13, 23, ...I have tried these method, but it doesnt works.
[Code]...
I have a gridview that is being databound by an SQLdatasource and on RowDataBound i am doing a calculation and then setting
e.Row.cells(17).text = Result
However, when I go to sort it on the website it sorts it based off the previous values.Cell(17) from the datasource reads in all 1's. The numbers I change it to range from 0 to 15. So when I click sort nothing changes because it sees it as all 1's.How can i make the gridivew sort off the changed text values?
If the grid column is clicked to sort i dont want to retireve data agian, i can get it from viewstate, but i dont know if that triggered the post back or if the ImageButton on the page triggered it
View 5 RepliesActually i want to ask which is the best for sorting in Asp.Net is it DataView.Sort Method or List<Object>.Sort() method.
View 1 Replies