ADO.NET :: Sorting AlphaNumeric Column In DataView?
Oct 28, 2010I have a sorting issue with DataView.
View 2 RepliesI have a sorting issue with DataView.
View 2 RepliesI've got a datagrid which i wanted to sort, since i dnt have much knowledge of .Net, so what i did was to save that datagrid in a DataTable, then again save the same DataTable in a DataView, then apply sorting on that DataView. this is the code, and its working fine.
Code:
protected void dgEOBSearchResults_SortCommand(object source, DataGridSortCommandEventArgs e)
{
DataTable dtEOBDocumentListTable = (DataTable)Session["sEOBDataTable"];
if (ViewState["sortExpression"] == null)
[code]...
but the issue comes when the i try to sort the Date Column, the dates are in MM/DD/YYYY format, so if i try to sort the date column, the dates are sorted on month basis, rather than year basis. now i cant change the date format, is there any way to sort dates in DataView?
How to implement sorting in gridview with datasource present as viewstate since paging is required,and with columns conatining alphanumeric characters( sorting as like of windows explorer)
View 1 RepliesI want to sort the string which is in the format given below15% Test;15% Sear;40% Santhosh;30% Jeeson;
The output that I am expecting is
40% Santhosh;30% Jeeson;15% Sear;15% Test;
I wrote the following code but it does not work .
string str = "15% Test;15% Sear;40% Santhosh;30% Jeeson;";
Console.WriteLine(str);
DataTable dt = new DataTable("SortBenchMark");
DataRow dr;
dt.Columns.Add("Weightings", typeof(int));
dt.Columns.Add("BenchMark", typeof(string));
string weightings = string.Empty;
string BenchMarkName = string.Empty;
foreach (object o in str.Split(';'))
{
if(o.ToString().Length > 0)
{
dr = dt.NewRow();
dr["Weightings"] = Convert.ToInt32((o.ToString().Split('%'))[0].ToString().Trim());
dr["BenchMark"] = (o.ToString().Split('%'))[1].ToString().Trim();
dt.Rows.Add(dr);
}
}
dt.AcceptChanges();
DataView dataview = new DataView(dt);
dataview.Sort = "Weightings DESC,BenchMark Asc";
string final = string.Empty;
foreach (DataRow drow in dataview.Table.Rows)
{
final += drow["Weightings"].ToString().Trim() + "% " + drow["BenchMark"].ToString().Trim() + ";";
}
Console.WriteLine(final);
Console.ReadLine();
I am trying to do something I thought would be simple but something isn't working for me.
I have a DataTable that I need to sort by a price ascending, then select an 'nth' row value. The 'nth' value is the row count/10.
[Code]....
What happens is I get the "nth" value from the original tblDeals.
I am looking to sort a column on my gridview by simply clicking on the column rather than clicking on the column header. In the design I have been given, the column header will not be shown, and I need to be able to give the user to sort this column, by simply just clicking any where on the column.
View 2 RepliesSituation: SQL database, Linq to SQL class a ASP.NET page with a LinqDataSource and a gridview. The table has a ID field, a date field and a Serialnr field. In my Grid I like to Page on the datefield but to sort on the serialnr field ( or a selectable other field). Is that possible? Standard the paging is always done on the sort field and when you select a different sort field the page jumps back to the first page., and paging is then done over that sorted column.
View 2 RepliesI have a gridview with some columns and I need to sort the gridview by a date-column. But it doesn't sort it correctly. This is the code I use:
dt.DefaultView.Sort = "Meldingsdatum asc";
gvOutlookMeldingen.DataSource = dt;
gvOutlookMeldingen.DataBind();
I know how to do this in a datatable but I would just like to learn how to do it in a dataview.
I have a dataview which is used to populate a gridview. It has the following column
userid Location
123 New York
124 Chicago
125 London
Now, I would like to know how to determine the 124 row and highlight it to a blue in a dataview used to populate a gridview. kindly note, i can do this in a datatable but not a dataview. I would like to learn how to do it in a dataview.
Using ASP.NET Web Forms.I am databinding a DataView to a DataGrid with AutoGenerateColumns set to trueThe final column of the DataView is not rendering.Using the debugger I can see that the column definitely exists in the data grid's datasource. The column is of type decimal and some of the rows in the column have data in them.The column has a column name.The other columns are rendering fine.What's going on?Some more infoFunnily enough, I can set AutoGenerateColumns to false, then just add the columns manually:
datagrid.Columns.Clear();
foreach(DataColumn column in dataView.Table.Columns)
{
datagrid.Columns.Add(new BoundColumn {
HeaderText = column.ColumnName });
}
datagrid.DataSource = dataView;
This works fine. Why can't .NET do this with AutoGenerateColumns?
I have the following code reading in my xml file and sorting it by ID:
Dim ds As New DataSet
ds.ReadXml(Server.MapPath("/posts.xml"))
Dim dv As New DataView(ds.Tables(0))
dv.Sort = "id desc"
The only problem is that it isn't sorting it numerically (it's sorting it alphabetically 1, 10, 11, 2, 24, 3, 4...). It appears as though I have to convert that column into integers, but I haven't been able to figure out an efficient way to do that.
im ds As New DataSet
ds.ReadXml(Server.MapPath("/App_Data/posts.xml"))
'ds.Tables(0).Columns(0).DataType = TypeOf(Decimal)
Dim dv As New DataView(ds.Tables(0))
'dv.Sort = "date"
I'm trying to filter a DataView to return all the rows whose column x starts with a number: The following works in SQL Server:
select *
from dbo.Page
where Name like '[0-9]%'
However, when I try this:
dataView = new DataView( someDataTable, "Name LIKE '[0-9]%'", "Name ASC", DataViewRowState.CurrentRows);
I get "invalid parameter [0-9] with Operator Like" error message. What is the correct syntax to achieve my goal?
Im working through the nerd dinner example and Im trying to add column sorting to the list of the dinners .
i am having a terrible time getting it to actually sort. Im passing in my dinners as the source -- i cant figure out how to sort them and send them back
public SortedList(IQueryable<T> source,
string columnSort,
string directionSort)
I have a datagrid and a template column which is bound. I don't understand how to set the sortExpression to make sorting on that column work.
View 2 RepliesI have 5 bound columns to be retrieved from the database but I want that on page load event the retrieval of data should be sorted according to that column only
View 1 Repliesi have a GridView bound to a DataView. Some columns in the DataView's table are foreignkeys to related tables(f.e. Customer). I want to enable sorting for these columns too, but all i can do is sorting the foreignkey(fiCustomer) and not the CustomerName.
I have tried this without success(" Cannot find column ERP_Customer.CustomerName "):
<asp:TemplateField HeaderText="Customer" SortExpression="ERP_Customer.CustomerName" >
A tried also the DataViewManager, but i've a problem to detect the table to sort:
[code].....
I have to apply the sort on a distinct table of the DataViewManager, but this table would differ on the related tables.
I have bound the TemplateColumns in Codebehind in RowDataBound-Event f.e.:
Dim LblCustomer As Label = DirectCast(e.Row.FindControl("LblCustomer"), Label)
LblCustomer.Text = drCharge.ERP_CustomerRow.CustomerName 'drCharge inherits DataRow
What is the recommended way to sort a GridView on columns related to other tables? I could build a custom datatable with the customername instead of the foreignkey and bind this column to the TemplateField. But then my huge dataset in the model makes no sense anymore.
EDIT: I have a model with a Dataset. I'm binding one Datatable(ERP_Charge) from it to my GridView(actually i take a Dataview from that Table). In this Datatable are columns that are related to other Datatables in the Dataset(relations are defined). When i want to make the grid sortable its no problem on the columns that belong to ERP_Charge.
But the columns with foreign keys to other table could not be sorted because the Gridview shows f.e. not the CustomerID but the Customername. I get the Customername in RowDataBound. Normally i would join the tables and add a Datacolumn for the Customername.
I have given an access to stored procedure, which i'm not able to edit. This Stored Procedure returns a Table with 2 Column, what I did is set a GridView's DataSource using SQLDataSource in this stored procedure. but I want this GridView to Sort an specific column to descending whenever this GridView Loads.
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSource2" ForeColor="Black"
Width="58%" Height="125px" AllowPaging="True" AllowSorting="True"
PageSize="5" >
<Columns>
<asp:BoundField DataField="DateOccur" HeaderText="Login Date"
SortExpression="DateOccur" />
<asp:BoundField DataField="TotalMinutesPlayed" HeaderText="Total Minutes"
SortExpression="TotalMinutesPlayed" />
</Columns>
<AlternatingRowStyle BackColor="#EFEFEF" />
</asp:GridView>
I have a DataSet comprised of two DataTables. One of the DataTables is further comprised of the results of two different SQL calls. I need to alphabetize the results of those SQL calls. After the seconds set of results is added to the DataTable I tried the following but the end result (displayed on the page) did not alphabetize the returned results. There was no error. Can anyone advise me please. 'programs' is the DataTable name, title is the column name.
programs.DefaultView.Sort = "Title ASC";
I have a Gridview, which I bind to a Dataview programtically. My Gridview has 11 columns. Sorting works fine as long as I do not remove any columns programtically.
In certain cases I remove 2 of the columns from the Gridview. Still not a problem. All the data is properly displayed however the problem occurs when I sort one of the columns. I sort the Dataview and bind to the Gridview again. Data from two of my columns just vanishes. Both of these columns are based on ItemTemplates. The columns are still displayed but just empty cells.
Split off from http://forums.asp.net/t/1595139.aspx:
I have an additional column called 'KPI %' in my gridview that calculates the percentage of two template fields and thus I cannot use the sortexpression on it. How can I sort the contents of the 'KPI %' column in ASC or DESC format?
when I use 'RowNumber' = ROW_NUMBER() OVER(ORDER BY ColumnName) then due to orderby Column name consume 76% usage. in such case what I have to do? I can see sorting taking much time in execution plan.
View 1 Replieswhen I use 'RowNumber' = ROW_NUMBER() OVER(ORDER BY ColumnName) then due to orderby Column name consume 76% usage in execution plan . in such case what I have to do? I can see sorting taking much time in execution plan.
View 9 RepliesI have a gridview with 10 columns , i want sort the gridview column and im using bound field and template field
How can i make a sorting in grid in ASP.Net using VB.Net?
i want to sort a gridview column which is a template field with a repeater control in it. this column has multiple links and i would like to sort using the first link. how can i achieve this.
here is my code:
<asp:TemplateField HeaderText="Groups">
In gridview columns im displaying date and time, as below.
23/02/2010 11:19:52
Im also doing sorting on these columns.
But the issue is during sorting its only sorting on "day (dd)"....
for example....these 3 values are from column, Date.
23/02/2010 11:19:52
18/02/2010 10:25:10
17/03/2010 09:30:51
when I click for "Ascending" sort....it should get "17/03/2010 09:30:51" on the top (because of month 03) others have 02, but it doesnt, it gets in the above order, its just sort on day (dd).Below is my code for boundfield....
<asp:BoundField
DataField="Date"
HeaderText="Date" [code]...