Sorting A Gridview Alphabetically When Columns Are Codes?
Jun 15, 2010
i have a gridview populated by a Web Service search function. some of the columns in the grid are templatefields, because the values coming back from the search (in a datatable) are ids - i then use these ids to lookup the values when the rowdatabound event is triggered and populate a label or some such.
this means that my sorting function for these id/lookup columns sorts by the ids rather than the textual value that i have looked up and actually populated the grid with (although i do put the ids in the grids datakeys).
what i want to do is top be able to sort by the looked up textual value rather than the codes for these particular columns.what i was going to do to get around this was to when the datatable comes back from the search, adding more columns the textual values and doing all the looking up then, thus being able to sort directly from the manually added columns.
is there another way to do this? as that approach seems like a bit of a bodge. although i guess it does remove having to do the looking up in the rowdatabound event....
my sorting function works by sticking the datatable in the session and on each bind grabbing the sort column and binding the gridview to a DataView with the sort attribute set to the column - and the direction.
We have a list of titles, some of which start with numbers (e.g. 5 Ways to Make Widgets). We would like to sort this as if it were "Five Ways..." without changing the title. We know that some movie places do this, but I can't find info online on how to do it.
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)
I have a gridview to which I am binding a database values. My requirement is to bind the values to the gridview by sorting 3 columns as a default sorting with ASC order in one column and descending order in other two.. Can I do it in my .Net code or should I do that in Stored Procedure? If it can be done in .net code Can you tel me how it can be done.
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 the sorted column.
Moderators Note: THIS ISSUE IS BIG FOR ME AND EVEN IF POSSIBLE, GET THE REPLY FROM THE DESIGNER OF GRIDVIEW. I have been looking for him for long. I am really fed up with reviewing a good lot of web pages on how we can possibly customize the gridview to enable sorting and paging. So many sites have listed out a lot of information and so many guidances. But the problem is that one works out fine and the other is a burden. I really feel bad about being given the job of customizing this kind of a gridview which has no user friendly approach to it. Also, this control is rendered without the pager links inside the <tfoot> tag. I have tried the Pear Pager in php. It is that good and easy to use and compared to that, the gridview in asp.net is the worst ever control i have ever tried so far.
1. i can use the images to indicate the sorting direction 2. I can have the custom pager like
[code]
<<Previous 1 2 3 .. 7 Next >>.
[/code]
When i click the next when i am viewing the page at 3 , the pager links should change as
[code]
<<Previous 2 3 4 .. 7 Next >>
[/code]
Kindly look into this type of requirement and firstly tell me whether this is possible with the gridview control. I would like this request even to be escalated to the designers of the gridview control also, so that Microsoft comes out with a reply THAT WORKS and not the kind of stuff like surfing through a lot of links and pages and finally wasting a lot of days precious time and still breaking the head with this useless control. I have spent a lot of time in searching for a perfect way. Not writing a code that is non-standard. I am really serious b'cos I have spent weeks in customizing this control. If I dont get a solid reply atleast now, I am going to generate all the output by HTML content by custom coding.
is it possible to disable sorting on specific columns? 5 out of 7 columns have to be sortable, two not sortable. The columns are created dynamically in code behind, so I think doing this with mark up is out of the question. When I say disabled, I'm hoping that the underline wont show on the column header when you mouse over it.
explain what the Dynamic Data team was thinking when they designed grid sorting in Dynamic Data scaffolded tables? Sorting defaults to using all columns, in the order the appear in the model, often arbitrary very counter-productive.We've just had a run in with the 'out-of-the-box' sorting, and solved it with a simple SortExpression attribute on MetaTables. Another, even simpler solution would have been for them to avoid any sorting, allowing the DB to provide a default order based on clustered index.
I've been asked to take over a project that's filled with a bunch of bugs. It's currently using MVC 1.0 and there's a view with Html Helper Data Grid that uses a DataGridHelper class. I'm not that familiar with all of MVC yet, and I was wondering if it is possible to have the sorting of the columns be a POST event rather than a GET.
Currently when a user clicks a column to sort, the controller for the view calls the GET action method. This I guess is all fine and good, but the problem is that this view has a search form (which is a model in it's own right) with some text boxes and some drop down lists. When the GET action method is called, I lose all of the information in the search criteria. So when ever someone searches for something, but then wants to sort the results, it requries the db for all records (because all of the search criteria is cleared).
I guess there could be two solutions:
1) Is there a way to access the items in the search form / model in the GET portion of the action method? I've tried using ViewData or adding a parameter for the search form model, but (and maybe I'm doing it wrong) both return null.
2) Is there a way to make the sorting event of a column call the POST portion of the action method? That way I'll have the search form / model information and be able to sort the search result content instead of query for all records.
Also, there is a stored procedure that currently can handel all of possible search parameters. So, no matter what sort column is selected, or search parameters are entered, it can properly setup the sql query.
whenever I sort on a column it resets all my toggled columns back to visible. Is there a way to resort and keep the toggled columns that were selected as hidden to stay hidden?
I have a datagrid with two columns ( File Name, and Date Created ). I want them to be sorted when clicked (ASC or DESC). I went into the design view and added the allow sorting feature and added the column names, so they are clickable in the header of the data grid. I also already added the onsortcommand as well.
My datagrid is named dgFileList and the onsortcommand method is named dgFileList_SortCommand.
The procedure that is already loading on page load is a DataSet. (where I think my problem is)I dont have anything in the back end beside the dgFileList_Sortcommand method. From what I have read, it seems like I can't use a DataSet to be sorted...I'm using visual studios 2005, C#, not VB.
i am trying to implement this vb codes to my gridview for showing fixed char and with tooltip.My NewsHeader column property in sql is Text. How can I correct this error?
I have a GridView that has several dynamic columns (I do not know how many at design time and it could be 0-12 columns, hence need for dynamic columns). I have the columns in the grid and data bound to them - works great. There are other standard, design-time TemplateField columns with TextBox controls in them. These are bound with values that the user can edit. The grid is posted back via a Submit button. My question is "Why does gv.Columns.Insert() cause all my TextBox data to be null on Postback, but gv.Columns.Add() works like a champ?"
protected void BuildColumns() { // The first column to begin to insert the columns in the GridView int columnIndex = 5; BoundField aoColumn = new BoundField(); aoColumn.HeaderText = "New Column 1"; gvMyGrid.Columns.Insert(columnIndex, aoColumn); // kills txtQuantity.Text on postback gvMyGrid.Columns.Add(aoColumn); // works fine columnIndex++; foreach (MyEntity my in _myEntityCollection) { BoundField myColumn = new BoundField(); myColumn.HeaderText = String.Format("{0:d}", my.StartDate); gvMyGrid.Columns.Insert(columnIndex, myColumn); columnIndex++; } }
I then go on to assign values to these BoundFields in the _RowDataBound method and all of this works great. However, when I post back and try to reference some TextBox and they are all null. And yes, I have the BuildColumns() call wrapped in if (!IsPostBack) on Page_Load. Of course I would like to use .Insert() so that the columns can go in the proper location and not at the end of the Columns array.
in asp.net page user able to select gridview Columns, and it will hide remaining columns and that selection done by check box with column list bellow is Image link , what exactly I am looking for [URL] it look bellow after selection of column done [URL]
I have a datasource, which includes many columns, idealy, I need use a gridview to show:
1) first 3 columns: template fields, these fields depends on values in some columns of datasource. I use template fields, hard coded. works fine.
2) the other columns. This is I do not know how to do it. In the data source, there are about 10-20 columns data, each time, the # of columns of the data varies. idealy, I need show each of them as a seperated column in gridview. The entire data source may have 30 columns, but some of them are used in 1), and I only want show these 10-20 columns in gridview. Some columns in data source, I may not use them at all. is there a way to do this? or have to seperate them as a detail view style UI?
I apologize for the odd title. I've been trying to figure out how to do this and can't quite put it into words. Basically, I need to try to display a GridView with a whole bunch of columns (37 in one case) in two "rows" of columns. More or less.
So instead of this:
Column1 Column2 Column3 Column4 Column5 Column6 Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data
I'd like something like this:
Column1 Column2 Column3 Data Data Data Data Data Data Data Data Data
Column4 Column5 Column6 Data Data Data Data Data Data Data Data Data
As in the example there can be multiple rows returned which all need to be displayed. I'm trying to stop a very large horizontal scroll bar being required. I've been searching as much as I can but haven't found anything that fits what I'm looking for.
This should be a fairly simple one. I am creating a dataset which will contain a description field which I would like to sort by. The reason I want to sort the dataadapter and not in my SQL is that I am already ordering by the results that have a particular value. My SQL looks like this:
SELECT pif_desc, pif_fund, psf_end, (CASE WHEN SUM(pmi_units) IS Null THEN 0 ELSE SUM(pmi_units) END) As fundunits FROM tbl_mem INNER JOIN tbl_sfunds ON pm_scheme = psf_scheme INNER JOIN tbl_invfun ON tbl_fund = tbl_fund LEFT JOIN pe_minv ON pmi_fund = pif_fund AND pm_member = pmi_member WHERE pm_member = @pm_member GROUP BY pif_desc, pif_fund, psf_end ORDER BY fundunits DESC
My VB looks like this:
Dim cmd As New SqlCommand("getMembersFundsDCGENST", conn) cmd.CommandType = CommandType.StoredProcedure Dim p_pm_member As New SqlParameter("@pm_member", SqlDbType.Int) p_pm_member.Value = pm_member cmd.Parameters.Add(p_pm_member) Dim p_period_closing_date As New SqlParameter("@closingdate", SqlDbType.DateTime) p_period_closing_date.Value = period_closing_date cmd.Parameters.Add(p_closing_date) Dim da As New SqlDataAdapter(cmd) da.Fill(ds)
I want to sort the datarows is ds.tables(0) by pif_desc but still have the rows with fundunits > 0 listed first.
I have a table:Category with some sort of categorie
[code]...
Well, the strange question is: how can i order the subcategories alphabetically? If i'd have binded the children repeater to a linq it would be easy. But in this case?