473,720 Members | 2,871 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

GridView sort by a column whose header is dynamically created

I have a GridView, in which the header of one column changes depending
on the selected value of a DropDownList outside of this GridView.

I did this dynamic header through

protected void GridView1_RowCr eated(object sender,
GridViewRowEven tArgs e)
{
if (e.Row.RowType == DataControlRowT ype.Header)
{
e.Row.Cells[5].Text =
myDropDownList. SelectedValue;
}
}

In the declaration of this GridView, I have

AllowSorting="t rue"

and of course I have a Sorting event handler.

Every column is sortable except this column with the dynamic header.
If assign a static value to this header and remove this RowCreated
event handler, this column becomes sortable, too.

So, the question is: How can I make the column with a dynamic header
sortable?
Jun 27 '08 #1
2 5395
It is essentially the same as sorting with a non-dynamically created header,
except you have to control the sort. For a simple sort, you can use a
DataView to bind and set up the sort there. With this form of sort, you can
cache the data, most likely in ViewState, although there are applications
where this is not acceptable.

If you also need paging, you will have to write custom software to do this
and will probably have to retrieve the data each time there is a sort so you
can get a pointer to figure out start and end of the page.

If you want to see how Microsoft does it, you can use Reflector on the .NET
assemblies or, in VS 2008, step into the code. Both can give you a clue of
how MS accomplishes sorting.

Here's a couple of articles:
http://lakshmik.blogspot.com/2006/06...nd-custom.html
http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=428

I am kind of fond of the idea in the second one, although I have not tried
it. Binding with generics would take a bit of work to massage the data
intitially, but the benefits outweigh the extra work.

--
Gregory A. Beamer
MVP, MCP: +I, SE, SD, DBA

Subscribe to my blog
http://gregorybeamer.spaces.live.com/lists/feed.rss

or just read it:
http://gregorybeamer.spaces.live.com/

*************** *************** *************** ****
| Think outside the box!
|
*************** *************** *************** ****
"gnewsgroup " <gn********@gma il.comwrote in message
news:67******** *************** ***********@m36 g2000hse.google groups.com...
>I have a GridView, in which the header of one column changes depending
on the selected value of a DropDownList outside of this GridView.

I did this dynamic header through

protected void GridView1_RowCr eated(object sender,
GridViewRowEven tArgs e)
{
if (e.Row.RowType == DataControlRowT ype.Header)
{
e.Row.Cells[5].Text =
myDropDownList. SelectedValue;
}
}

In the declaration of this GridView, I have

AllowSorting="t rue"

and of course I have a Sorting event handler.

Every column is sortable except this column with the dynamic header.
If assign a static value to this header and remove this RowCreated
event handler, this column becomes sortable, too.

So, the question is: How can I make the column with a dynamic header
sortable?

Jun 27 '08 #2
On Apr 11, 9:55 am, "Cowboy \(Gregory A. Beamer\)"
<NoSpamMgbwo... @comcast.netNoS pamMwrote:
It is essentially the same as sorting with a non-dynamically createdheader,
except you have to control the sort. For a simple sort, you can use a
DataView to bind and set up the sort there. With this form of sort, you can
cache the data, most likely in ViewState, although there are applications
where this is not acceptable.

If you also need paging, you will have to write custom software to do this
and will probably have to retrieve the data each time there is a sort so you
can get a pointer to figure out start and end of the page.

If you want to see how Microsoft does it, you can use Reflector on the .NET
assemblies or, in VS 2008, step into the code. Both can give you a clue of
how MS accomplishes sorting.

Here's a couple of articles:http://lakshmik.blogspot.com/2006/06...x?quickdoc=428

I am kind of fond of the idea in the second one, although I have not tried
it. Binding with generics would take a bit of work to massage the data
intitially, but the benefits outweigh the extra work.

--
Gregory A. Beamer
MVP, MCP: +I, SE, SD, DBA

Subscribe to my bloghttp://gregorybeamer.s paces.live.com/lists/feed.rss

or just read it:http://gregorybeamer.spaces.live.com/

*************** *************** *************** ****
| Think outside the box!
|
*************** *************** *************** ****"
Thank you very much for the references. The problem for me right now
is that the dynamically created header isn't even clickable, unlike
other static header, which you can click and sort.
Jun 27 '08 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

7
14810
by: | last post by:
Hello, Does anyone have an idea on how I can filter the data in the gridview control that was returned by an sql query? I have a gridview that works fine when I populate it with data. Now I want to look at that data and filter it based on what is in it. I know that this could have been done with data sets and data views in asp.net 1.1 but how is this done now in asp.net 2.0?
1
9354
by: Miguel Dias Moura | last post by:
Hello, I have a GridView in my page which is created in runtime. It works fine. My page has 2 Asp Buttons: - The HIDE button makes GridView.Visible = False; - The SHOW button makes GridView.Visible = True. I press HIDE and the GridView disappears as expected. After it I press SHOW and the GridView doesn't show.
0
1215
by: Smokey Grindle | last post by:
I'm trying desperatly to add a sort order arrow to my grid view and have this code below ofr it... but when the code runs the girdview sortexpression is always = "" never the sort name... why?! i want the image to show up on only the column sorting on... protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { foreach (TableCell tc in e.Row.Cells)
1
2870
by: Bill44077 | last post by:
I am dynamically adding a checkbox in a gridview and I find there are several things that I cannot figure out how to address. 1. The width of the checkbox column is very wide. I've tried adding properties and Item Style to the column but it has no effect. Is there someway to size this column to be smaller? I removed the CssClass property and it had no effect on the size as well. 2. The gridview is sortable using javascript. Is there...
4
15362
by: bryan | last post by:
Hi all, I am working on a .net 2.0 web app. On page load I display a gridview with a drop down list (Employees), when the user selects from the drop down list, the grid view is filled with the dates the employees are working. I then want to push a button that adds a new column to the gridview, a new Employees drop down list appears, and again the user selects the
4
8330
by: Ken Wigle | last post by:
All, I would be very grateful for any help on this question. I have an application in asp.net 2.0 where I dynamically create a datatable and then bind that to a gridview. Unfortunately, the date column always shows the date and time while I just want the short date. I have tried applying a format string {0:d} but to no avail. I saw a lot of posts regarding the htmlencode property but I do not know how to turn that off for a...
4
2536
by: Mark Olbert | last post by:
I'm running into a well-described issue in the ASPNET model that I haven't found a good work around for. I have a GridView to which I dynamically add data-bound TemplateFields at run-time. The specific fields that are added depend on the state of the application. The contents of these fields displays properly after they are first initialized, but not after postback (e.g., just a simple button control that doesn't do anything except...
2
10457
by: =?Utf-8?B?Q2FybG8gTWFyY2hlc29uaQ==?= | last post by:
I am building a GridView dynamically adding templatFields according to a Microsoft article. I had to create a class with the ITemplate interface and a method called InstantiateIn. Everything works fine except that I am unable to sort such a templatefield. AllowSorting is true: <asp:GridView ID="gvwPend" runat="server" AllowSorting="True" AutoGenerateColumns="False" ... OnSorting="gvwPend_Sorting">
4
11008
by: Craig Buchanan | last post by:
I dynamically add data-bound templates to a gridview in my ascx control. while this works correctly when the gridview is databound to the datatable, i'm having issues on postback. i would like to iterate thru the gridview's rows, examine the databound controls, then perform a database action. for some reason, i can't find the controls. i have a two templates: one that uses a label the other uses a textbox to display data. when the...
0
8833
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, weíll explore What is ONU, What Is Router, ONU & Routerís main usage, and What is the difference between ONU and Router. Letís take a closer look ! Part I. Meaning of...
0
8727
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
9365
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
9126
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9055
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
5972
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4482
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
4748
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
2567
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.