| Home | Forums | Reviews | Guides | Newsgroups | Register | Search |
![]() |
| Thread Tools |
| tshad |
|
|
|
| |
|
Eliyahu Goldin
Guest
Posts: n/a
|
You just need to operate on DataGrid.Columns collection in code-behind. Look
at the DataGridColumnCollection class, it has a few methods like AddAt that can help you. -- Eliyahu Goldin, Software Developer Microsoft MVP [ASP.NET] http://msmvps.com/blogs/egoldin http://usableasp.net "tshad" <> wrote in message news:... >I am trying to allow my clients to specify the order that columns show in a >datagrid. > > If I have a Datagrid like so: > > <asp > Visible=true > AllowSorting="false" > AutoGenerateColumns="false" > CellPadding="0" > CellSpacing="0" > ID="DataGrid2" > runat="server" > ShowFooter="false" > ShowHeader="true" > OnSortCommand="SortDataGrid" > BorderWidth="0" > BorderColor="#999999" > Width="701px" > style="padding-right:5px"> > <headerstyle Font-Bold="true" /> > <alternatingitemstyle CssClass="alternateRows" /> > <footerstyle BackColor="#E8EBFD" ForeColor="#3D3DB6" > Font-Bold="true" /> > <pagerstyle BackColor="white" /> > <columns> > <asp:TemplateColumn sortexpression="JobTitle" > ItemStyle-Width="190px" HeaderStyle-Width="190px" > headertext="Job Title" ItemStyle-VerticalAlign="Top" > runat="server"> > <ItemTemplate> > <asp:HyperLink ID="JobTitle" > NavigateURL='<%# "displayPositionNew.aspx?PositionID=" & > Container.DataItem("PositionID") %>' > Text='<%# Container.DataItem("JobTitle")%>' > OnPreRender="FixHyperLink" > runat="server"/> > </ItemTemplate> > </asp:TemplateColumn> > <asp:BoundColumn ItemStyle-Width="150" DataField="Company" > HeaderText="Company" > ReadOnly="true" > Visible="True" > ItemStyle-VerticalAlign="Top" > SortExpression="Company"/> > <asp:BoundColumn ItemStyle-Width="110" DataField="Location" > HeaderText="Location" > ReadOnly="true" > Visible="True" > ItemStyle-VerticalAlign="Top" > SortExpression="Location"/> > </columns> > </asp > > I have 3 columns: JobTitle, Company and Location - in that order. > > But one client may want the client to be Company, Location, JobTitle and > another may want it to be Location, JobTitle,Company. > > Is there a way to change the order of the columns as they are displayed? > > I mentioned in another post that I change the size of the DataGrid and > hide columns in my PreRender event, like so: > > DataGrid1.Width = new Unit("551px") > for each col as DataGridColumn in DataGrid1.Columns > if col.HeaderText = "Company" orElse col.HeaderText = "Posted" then > col.Visible = false > end if > next > > Can I do something like this to also change the order in the table? > > Thanks, > > Tom > |
|
|
|
|
|||
|
|||
| Eliyahu Goldin |
|
|
|
| |
|
tshad
Guest
Posts: n/a
|
"Eliyahu Goldin" <> wrote in
message news:... > You just need to operate on DataGrid.Columns collection in code-behind. > Look at the DataGridColumnCollection class, it has a few methods like > AddAt that can help you. I will look at that but I am not using code behind. I build all my pages in DW and am using .net 1.1. Also, AddAt or Insert is for creating new columns than adding them to the DataGrid. What I was hoping to do was to change the order of the columns already set up in the DataGrid object below, either in the Page_Load or Page_PreRender event. Since you can add a new column at the beginning of the column list using AddAt or Insert (which would in effect change the order of the columns) - is there a way to say move columns(2) to columns(1) some way? Thanks, Tom > > -- > Eliyahu Goldin, > Software Developer > Microsoft MVP [ASP.NET] > http://msmvps.com/blogs/egoldin > http://usableasp.net > > > "tshad" <> wrote in message > news:... >>I am trying to allow my clients to specify the order that columns show in >>a datagrid. >> >> If I have a Datagrid like so: >> >> <asp >> Visible=true >> AllowSorting="false" >> AutoGenerateColumns="false" >> CellPadding="0" >> CellSpacing="0" >> ID="DataGrid2" >> runat="server" >> ShowFooter="false" >> ShowHeader="true" >> OnSortCommand="SortDataGrid" >> BorderWidth="0" >> BorderColor="#999999" >> Width="701px" >> style="padding-right:5px"> >> <headerstyle Font-Bold="true" /> >> <alternatingitemstyle CssClass="alternateRows" /> >> <footerstyle BackColor="#E8EBFD" ForeColor="#3D3DB6" >> Font-Bold="true" /> >> <pagerstyle BackColor="white" /> >> <columns> >> <asp:TemplateColumn sortexpression="JobTitle" >> ItemStyle-Width="190px" HeaderStyle-Width="190px" >> headertext="Job Title" ItemStyle-VerticalAlign="Top" >> runat="server"> >> <ItemTemplate> >> <asp:HyperLink ID="JobTitle" >> NavigateURL='<%# "displayPositionNew.aspx?PositionID=" & >> Container.DataItem("PositionID") %>' >> Text='<%# Container.DataItem("JobTitle")%>' >> OnPreRender="FixHyperLink" >> runat="server"/> >> </ItemTemplate> >> </asp:TemplateColumn> >> <asp:BoundColumn ItemStyle-Width="150" DataField="Company" >> HeaderText="Company" >> ReadOnly="true" >> Visible="True" >> ItemStyle-VerticalAlign="Top" >> SortExpression="Company"/> >> <asp:BoundColumn ItemStyle-Width="110" DataField="Location" >> HeaderText="Location" >> ReadOnly="true" >> Visible="True" >> ItemStyle-VerticalAlign="Top" >> SortExpression="Location"/> >> </columns> >> </asp >> >> I have 3 columns: JobTitle, Company and Location - in that order. >> >> But one client may want the client to be Company, Location, JobTitle and >> another may want it to be Location, JobTitle,Company. >> >> Is there a way to change the order of the columns as they are displayed? >> >> I mentioned in another post that I change the size of the DataGrid and >> hide columns in my PreRender event, like so: >> >> DataGrid1.Width = new Unit("551px") >> for each col as DataGridColumn in DataGrid1.Columns >> if col.HeaderText = "Company" orElse col.HeaderText = "Posted" then >> col.Visible = false >> end if >> next >> >> Can I do something like this to also change the order in the table? >> >> Thanks, >> >> Tom >> > > |
|
|
|
|
|||
|
|||
| tshad |
|
Eliyahu Goldin
Guest
Posts: n/a
|
> What I was hoping to do was to change the order of the columns already set
> up in the DataGrid object below, either in the Page_Load or Page_PreRender > event. Since you can add a new column at the beginning of the column list > using AddAt or Insert (which would in effect change the order of the > columns) - is there a way to say move columns(2) to columns(1) some way? Make a copy of columns(2), remove columns(2) from the grid and add it again with AddAt(0). This will move columns(2) to columns(1). -- Eliyahu Goldin, Software Developer Microsoft MVP [ASP.NET] http://msmvps.com/blogs/egoldin http://usableasp.net "tshad" <> wrote in message news:... > "Eliyahu Goldin" <> wrote in > message news:... >> You just need to operate on DataGrid.Columns collection in code-behind. >> Look at the DataGridColumnCollection class, it has a few methods like >> AddAt that can help you. > > I will look at that but I am not using code behind. I build all my pages > in DW and am using .net 1.1. > > Also, AddAt or Insert is for creating new columns than adding them to the > DataGrid. > > What I was hoping to do was to change the order of the columns already set > up in the DataGrid object below, either in the Page_Load or Page_PreRender > event. Since you can add a new column at the beginning of the column list > using AddAt or Insert (which would in effect change the order of the > columns) - is there a way to say move columns(2) to columns(1) some way? > > Thanks, > > Tom >> >> -- >> Eliyahu Goldin, >> Software Developer >> Microsoft MVP [ASP.NET] >> http://msmvps.com/blogs/egoldin >> http://usableasp.net >> >> >> "tshad" <> wrote in message >> news:... >>>I am trying to allow my clients to specify the order that columns show in >>>a datagrid. >>> >>> If I have a Datagrid like so: >>> >>> <asp >>> Visible=true >>> AllowSorting="false" >>> AutoGenerateColumns="false" >>> CellPadding="0" >>> CellSpacing="0" >>> ID="DataGrid2" >>> runat="server" >>> ShowFooter="false" >>> ShowHeader="true" >>> OnSortCommand="SortDataGrid" >>> BorderWidth="0" >>> BorderColor="#999999" >>> Width="701px" >>> style="padding-right:5px"> >>> <headerstyle Font-Bold="true" /> >>> <alternatingitemstyle CssClass="alternateRows" /> >>> <footerstyle BackColor="#E8EBFD" ForeColor="#3D3DB6" >>> Font-Bold="true" /> >>> <pagerstyle BackColor="white" /> >>> <columns> >>> <asp:TemplateColumn sortexpression="JobTitle" >>> ItemStyle-Width="190px" HeaderStyle-Width="190px" >>> headertext="Job Title" ItemStyle-VerticalAlign="Top" >>> runat="server"> >>> <ItemTemplate> >>> <asp:HyperLink ID="JobTitle" >>> NavigateURL='<%# "displayPositionNew.aspx?PositionID=" & >>> Container.DataItem("PositionID") %>' >>> Text='<%# Container.DataItem("JobTitle")%>' >>> OnPreRender="FixHyperLink" >>> runat="server"/> >>> </ItemTemplate> >>> </asp:TemplateColumn> >>> <asp:BoundColumn ItemStyle-Width="150" DataField="Company" >>> HeaderText="Company" >>> ReadOnly="true" >>> Visible="True" >>> ItemStyle-VerticalAlign="Top" >>> SortExpression="Company"/> >>> <asp:BoundColumn ItemStyle-Width="110" DataField="Location" >>> HeaderText="Location" >>> ReadOnly="true" >>> Visible="True" >>> ItemStyle-VerticalAlign="Top" >>> SortExpression="Location"/> >>> </columns> >>> </asp >>> >>> I have 3 columns: JobTitle, Company and Location - in that order. >>> >>> But one client may want the client to be Company, Location, JobTitle and >>> another may want it to be Location, JobTitle,Company. >>> >>> Is there a way to change the order of the columns as they are displayed? >>> >>> I mentioned in another post that I change the size of the DataGrid and >>> hide columns in my PreRender event, like so: >>> >>> DataGrid1.Width = new Unit("551px") >>> for each col as DataGridColumn in DataGrid1.Columns >>> if col.HeaderText = "Company" orElse col.HeaderText = "Posted" then >>> col.Visible = false >>> end if >>> next >>> >>> Can I do something like this to also change the order in the table? >>> >>> Thanks, >>> >>> Tom >>> >> >> > > |
|
|
|
|
|||
|
|||
| Eliyahu Goldin |
|
tshad
Guest
Posts: n/a
|
"Eliyahu Goldin" <> wrote in
message news:... >> What I was hoping to do was to change the order of the columns already >> set up in the DataGrid object below, either in the Page_Load or >> Page_PreRender event. Since you can add a new column at the beginning of >> the column list using AddAt or Insert (which would in effect change the >> order of the columns) - is there a way to say move columns(2) to >> columns(1) some way? > > Make a copy of columns(2), remove columns(2) from the grid and add it > again with AddAt(0). This will move columns(2) to columns(1). That's sounds like a great idea. I understand how AddAt works , but how do you copy one column and remove another? CopyAt will copy all the columns into an array (I think) - but I am not sure how I delete the columns that add the array back into the array. Also, I plan to do this in my Page_Load/"not IsPostback" event. Will this change carry over to my next page or do I need to do it again at each PostBack? Thanks, Tom > > -- > Eliyahu Goldin, > Software Developer > Microsoft MVP [ASP.NET] > http://msmvps.com/blogs/egoldin > http://usableasp.net > > > "tshad" <> wrote in message > news:... >> "Eliyahu Goldin" <> wrote in >> message news:... >>> You just need to operate on DataGrid.Columns collection in code-behind. >>> Look at the DataGridColumnCollection class, it has a few methods like >>> AddAt that can help you. >> >> I will look at that but I am not using code behind. I build all my pages >> in DW and am using .net 1.1. >> >> Also, AddAt or Insert is for creating new columns than adding them to the >> DataGrid. >> >> What I was hoping to do was to change the order of the columns already >> set up in the DataGrid object below, either in the Page_Load or >> Page_PreRender event. Since you can add a new column at the beginning of >> the column list using AddAt or Insert (which would in effect change the >> order of the columns) - is there a way to say move columns(2) to >> columns(1) some way? >> >> Thanks, >> >> Tom >>> >>> -- >>> Eliyahu Goldin, >>> Software Developer >>> Microsoft MVP [ASP.NET] >>> http://msmvps.com/blogs/egoldin >>> http://usableasp.net >>> >>> >>> "tshad" <> wrote in message >>> news:... >>>>I am trying to allow my clients to specify the order that columns show >>>>in a datagrid. >>>> >>>> If I have a Datagrid like so: >>>> >>>> <asp >>>> Visible=true >>>> AllowSorting="false" >>>> AutoGenerateColumns="false" >>>> CellPadding="0" >>>> CellSpacing="0" >>>> ID="DataGrid2" >>>> runat="server" >>>> ShowFooter="false" >>>> ShowHeader="true" >>>> OnSortCommand="SortDataGrid" >>>> BorderWidth="0" >>>> BorderColor="#999999" >>>> Width="701px" >>>> style="padding-right:5px"> >>>> <headerstyle Font-Bold="true" /> >>>> <alternatingitemstyle CssClass="alternateRows" /> >>>> <footerstyle BackColor="#E8EBFD" ForeColor="#3D3DB6" >>>> Font-Bold="true" /> >>>> <pagerstyle BackColor="white" /> >>>> <columns> >>>> <asp:TemplateColumn sortexpression="JobTitle" >>>> ItemStyle-Width="190px" HeaderStyle-Width="190px" >>>> headertext="Job Title" ItemStyle-VerticalAlign="Top" >>>> runat="server"> >>>> <ItemTemplate> >>>> <asp:HyperLink ID="JobTitle" >>>> NavigateURL='<%# "displayPositionNew.aspx?PositionID=" & >>>> Container.DataItem("PositionID") %>' >>>> Text='<%# Container.DataItem("JobTitle")%>' >>>> OnPreRender="FixHyperLink" >>>> runat="server"/> >>>> </ItemTemplate> >>>> </asp:TemplateColumn> >>>> <asp:BoundColumn ItemStyle-Width="150" DataField="Company" >>>> HeaderText="Company" >>>> ReadOnly="true" >>>> Visible="True" >>>> ItemStyle-VerticalAlign="Top" >>>> SortExpression="Company"/> >>>> <asp:BoundColumn ItemStyle-Width="110" DataField="Location" >>>> HeaderText="Location" >>>> ReadOnly="true" >>>> Visible="True" >>>> ItemStyle-VerticalAlign="Top" >>>> SortExpression="Location"/> >>>> </columns> >>>> </asp >>>> >>>> I have 3 columns: JobTitle, Company and Location - in that order. >>>> >>>> But one client may want the client to be Company, Location, JobTitle >>>> and another may want it to be Location, JobTitle,Company. >>>> >>>> Is there a way to change the order of the columns as they are >>>> displayed? >>>> >>>> I mentioned in another post that I change the size of the DataGrid and >>>> hide columns in my PreRender event, like so: >>>> >>>> DataGrid1.Width = new Unit("551px") >>>> for each col as DataGridColumn in DataGrid1.Columns >>>> if col.HeaderText = "Company" orElse col.HeaderText = "Posted" then >>>> col.Visible = false >>>> end if >>>> next >>>> >>>> Can I do something like this to also change the order in the table? >>>> >>>> Thanks, >>>> >>>> Tom >>>> >>> >>> >> >> > > |
|
|
|
|
|||
|
|||
| tshad |
|
Eliyahu Goldin
Guest
Posts: n/a
|
That's right. CopyAt is good for copying and RemoveAt for deleting. Than you
can AddAt an individual item from the array. -- Eliyahu Goldin, Software Developer Microsoft MVP [ASP.NET] http://msmvps.com/blogs/egoldin http://usableasp.net "tshad" <> wrote in message news:OUzBa%... > "Eliyahu Goldin" <> wrote in > message news:... >>> What I was hoping to do was to change the order of the columns already >>> set up in the DataGrid object below, either in the Page_Load or >>> Page_PreRender event. Since you can add a new column at the beginning >>> of the column list using AddAt or Insert (which would in effect change >>> the order of the columns) - is there a way to say move columns(2) to >>> columns(1) some way? >> >> Make a copy of columns(2), remove columns(2) from the grid and add it >> again with AddAt(0). This will move columns(2) to columns(1). > > That's sounds like a great idea. > > I understand how AddAt works , but how do you copy one column and remove > another? > > CopyAt will copy all the columns into an array (I think) - but I am not > sure how I delete the columns that add the array back into the array. > > Also, I plan to do this in my Page_Load/"not IsPostback" event. Will this > change carry over to my next page or do I need to do it again at each > PostBack? > > Thanks, > > Tom >> >> -- >> Eliyahu Goldin, >> Software Developer >> Microsoft MVP [ASP.NET] >> http://msmvps.com/blogs/egoldin >> http://usableasp.net >> >> >> "tshad" <> wrote in message >> news:... >>> "Eliyahu Goldin" <> wrote in >>> message news:... >>>> You just need to operate on DataGrid.Columns collection in code-behind. >>>> Look at the DataGridColumnCollection class, it has a few methods like >>>> AddAt that can help you. >>> >>> I will look at that but I am not using code behind. I build all my >>> pages in DW and am using .net 1.1. >>> >>> Also, AddAt or Insert is for creating new columns than adding them to >>> the DataGrid. >>> >>> What I was hoping to do was to change the order of the columns already >>> set up in the DataGrid object below, either in the Page_Load or >>> Page_PreRender event. Since you can add a new column at the beginning >>> of the column list using AddAt or Insert (which would in effect change >>> the order of the columns) - is there a way to say move columns(2) to >>> columns(1) some way? >>> >>> Thanks, >>> >>> Tom >>>> >>>> -- >>>> Eliyahu Goldin, >>>> Software Developer >>>> Microsoft MVP [ASP.NET] >>>> http://msmvps.com/blogs/egoldin >>>> http://usableasp.net >>>> >>>> >>>> "tshad" <> wrote in message >>>> news:... >>>>>I am trying to allow my clients to specify the order that columns show >>>>>in a datagrid. >>>>> >>>>> If I have a Datagrid like so: >>>>> >>>>> <asp >>>>> Visible=true >>>>> AllowSorting="false" >>>>> AutoGenerateColumns="false" >>>>> CellPadding="0" >>>>> CellSpacing="0" >>>>> ID="DataGrid2" >>>>> runat="server" >>>>> ShowFooter="false" >>>>> ShowHeader="true" >>>>> OnSortCommand="SortDataGrid" >>>>> BorderWidth="0" >>>>> BorderColor="#999999" >>>>> Width="701px" >>>>> style="padding-right:5px"> >>>>> <headerstyle Font-Bold="true" /> >>>>> <alternatingitemstyle CssClass="alternateRows" /> >>>>> <footerstyle BackColor="#E8EBFD" ForeColor="#3D3DB6" >>>>> Font-Bold="true" /> >>>>> <pagerstyle BackColor="white" /> >>>>> <columns> >>>>> <asp:TemplateColumn sortexpression="JobTitle" >>>>> ItemStyle-Width="190px" HeaderStyle-Width="190px" >>>>> headertext="Job Title" ItemStyle-VerticalAlign="Top" >>>>> runat="server"> >>>>> <ItemTemplate> >>>>> <asp:HyperLink ID="JobTitle" >>>>> NavigateURL='<%# "displayPositionNew.aspx?PositionID=" & >>>>> Container.DataItem("PositionID") %>' >>>>> Text='<%# Container.DataItem("JobTitle")%>' >>>>> OnPreRender="FixHyperLink" >>>>> runat="server"/> >>>>> </ItemTemplate> >>>>> </asp:TemplateColumn> >>>>> <asp:BoundColumn ItemStyle-Width="150" DataField="Company" >>>>> HeaderText="Company" >>>>> ReadOnly="true" >>>>> Visible="True" >>>>> ItemStyle-VerticalAlign="Top" >>>>> SortExpression="Company"/> >>>>> <asp:BoundColumn ItemStyle-Width="110" DataField="Location" >>>>> HeaderText="Location" >>>>> ReadOnly="true" >>>>> Visible="True" >>>>> ItemStyle-VerticalAlign="Top" >>>>> SortExpression="Location"/> >>>>> </columns> >>>>> </asp >>>>> >>>>> I have 3 columns: JobTitle, Company and Location - in that order. >>>>> >>>>> But one client may want the client to be Company, Location, JobTitle >>>>> and another may want it to be Location, JobTitle,Company. >>>>> >>>>> Is there a way to change the order of the columns as they are >>>>> displayed? >>>>> >>>>> I mentioned in another post that I change the size of the DataGrid and >>>>> hide columns in my PreRender event, like so: >>>>> >>>>> DataGrid1.Width = new Unit("551px") >>>>> for each col as DataGridColumn in DataGrid1.Columns >>>>> if col.HeaderText = "Company" orElse col.HeaderText = "Posted" >>>>> then >>>>> col.Visible = false >>>>> end if >>>>> next >>>>> >>>>> Can I do something like this to also change the order in the table? >>>>> >>>>> Thanks, >>>>> >>>>> Tom >>>>> >>>> >>>> >>> >>> >> >> > > |
|
|
|
|
|||
|
|||
| Eliyahu Goldin |
|
tshad
Guest
Posts: n/a
|
"Eliyahu Goldin" <> wrote in
message news:%... > That's right. CopyAt is good for copying and RemoveAt for deleting. Than > you can AddAt an individual item from the array. I assume you mean CopyTo? I am having a problem doing the CopyTo. Do you have to do it after you bind? I am just trying to change the order of the columns in the Page_Load event before any binding is done. I tried: Dim theArray() as DataGridColumn DataGrid2.Columns.CopyTo(theArray,0) -- error Object reference not set to an instance of an object I also tried: Dim theArray(3) as DataGridColumn DataGrid2.Columns.CopyTo(theArray,0) -- error System.IndexOutOfRangeException: Index was outside the bounds of the array Not sure what the problem is here. Thanks, Tom > > -- > Eliyahu Goldin, > Software Developer > Microsoft MVP [ASP.NET] > http://msmvps.com/blogs/egoldin > http://usableasp.net > > > "tshad" <> wrote in message > news:OUzBa%... >> "Eliyahu Goldin" <> wrote in >> message news:... >>>> What I was hoping to do was to change the order of the columns already >>>> set up in the DataGrid object below, either in the Page_Load or >>>> Page_PreRender event. Since you can add a new column at the beginning >>>> of the column list using AddAt or Insert (which would in effect change >>>> the order of the columns) - is there a way to say move columns(2) to >>>> columns(1) some way? >>> >>> Make a copy of columns(2), remove columns(2) from the grid and add it >>> again with AddAt(0). This will move columns(2) to columns(1). >> >> That's sounds like a great idea. >> >> I understand how AddAt works , but how do you copy one column and remove >> another? >> >> CopyAt will copy all the columns into an array (I think) - but I am not >> sure how I delete the columns that add the array back into the array. >> >> Also, I plan to do this in my Page_Load/"not IsPostback" event. Will >> this change carry over to my next page or do I need to do it again at >> each PostBack? >> >> Thanks, >> >> Tom >>> >>> -- >>> Eliyahu Goldin, >>> Software Developer >>> Microsoft MVP [ASP.NET] >>> http://msmvps.com/blogs/egoldin >>> http://usableasp.net >>> >>> >>> "tshad" <> wrote in message >>> news:... >>>> "Eliyahu Goldin" <> wrote in >>>> message news:... >>>>> You just need to operate on DataGrid.Columns collection in >>>>> code-behind. Look at the DataGridColumnCollection class, it has a few >>>>> methods like AddAt that can help you. >>>> >>>> I will look at that but I am not using code behind. I build all my >>>> pages in DW and am using .net 1.1. >>>> >>>> Also, AddAt or Insert is for creating new columns than adding them to >>>> the DataGrid. >>>> >>>> What I was hoping to do was to change the order of the columns already >>>> set up in the DataGrid object below, either in the Page_Load or >>>> Page_PreRender event. Since you can add a new column at the beginning >>>> of the column list using AddAt or Insert (which would in effect change >>>> the order of the columns) - is there a way to say move columns(2) to >>>> columns(1) some way? >>>> >>>> Thanks, >>>> >>>> Tom >>>>> >>>>> -- >>>>> Eliyahu Goldin, >>>>> Software Developer >>>>> Microsoft MVP [ASP.NET] >>>>> http://msmvps.com/blogs/egoldin >>>>> http://usableasp.net >>>>> >>>>> >>>>> "tshad" <> wrote in message >>>>> news:... >>>>>>I am trying to allow my clients to specify the order that columns show >>>>>>in a datagrid. >>>>>> >>>>>> If I have a Datagrid like so: >>>>>> >>>>>> <asp >>>>>> Visible=true >>>>>> AllowSorting="false" >>>>>> AutoGenerateColumns="false" >>>>>> CellPadding="0" >>>>>> CellSpacing="0" >>>>>> ID="DataGrid2" >>>>>> runat="server" >>>>>> ShowFooter="false" >>>>>> ShowHeader="true" >>>>>> OnSortCommand="SortDataGrid" >>>>>> BorderWidth="0" >>>>>> BorderColor="#999999" >>>>>> Width="701px" >>>>>> style="padding-right:5px"> >>>>>> <headerstyle Font-Bold="true" /> >>>>>> <alternatingitemstyle CssClass="alternateRows" /> >>>>>> <footerstyle BackColor="#E8EBFD" ForeColor="#3D3DB6" >>>>>> Font-Bold="true" /> >>>>>> <pagerstyle BackColor="white" /> >>>>>> <columns> >>>>>> <asp:TemplateColumn sortexpression="JobTitle" >>>>>> ItemStyle-Width="190px" HeaderStyle-Width="190px" >>>>>> headertext="Job Title" ItemStyle-VerticalAlign="Top" >>>>>> runat="server"> >>>>>> <ItemTemplate> >>>>>> <asp:HyperLink ID="JobTitle" >>>>>> NavigateURL='<%# "displayPositionNew.aspx?PositionID=" & >>>>>> Container.DataItem("PositionID") %>' >>>>>> Text='<%# Container.DataItem("JobTitle")%>' >>>>>> OnPreRender="FixHyperLink" >>>>>> runat="server"/> >>>>>> </ItemTemplate> >>>>>> </asp:TemplateColumn> >>>>>> <asp:BoundColumn ItemStyle-Width="150" DataField="Company" >>>>>> HeaderText="Company" >>>>>> ReadOnly="true" >>>>>> Visible="True" >>>>>> ItemStyle-VerticalAlign="Top" >>>>>> SortExpression="Company"/> >>>>>> <asp:BoundColumn ItemStyle-Width="110" DataField="Location" >>>>>> HeaderText="Location" >>>>>> ReadOnly="true" >>>>>> Visible="True" >>>>>> ItemStyle-VerticalAlign="Top" >>>>>> SortExpression="Location"/> >>>>>> </columns> >>>>>> </asp >>>>>> >>>>>> I have 3 columns: JobTitle, Company and Location - in that order. >>>>>> >>>>>> But one client may want the client to be Company, Location, JobTitle >>>>>> and another may want it to be Location, JobTitle,Company. >>>>>> >>>>>> Is there a way to change the order of the columns as they are >>>>>> displayed? >>>>>> >>>>>> I mentioned in another post that I change the size of the DataGrid >>>>>> and hide columns in my PreRender event, like so: >>>>>> >>>>>> DataGrid1.Width = new Unit("551px") >>>>>> for each col as DataGridColumn in DataGrid1.Columns >>>>>> if col.HeaderText = "Company" orElse col.HeaderText = "Posted" >>>>>> then >>>>>> col.Visible = false >>>>>> end if >>>>>> next >>>>>> >>>>>> Can I do something like this to also change the order in the table? >>>>>> >>>>>> Thanks, >>>>>> >>>>>> Tom >>>>>> >>>>> >>>>> >>>> >>>> >>> >>> >> >> > > |
|
|
|
|
|||
|
|||
| tshad |
|
|
|
| |
![]() |
| Thread Tools | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Dynamically Building Datagrid Columns | Craig G | ASP .Net | 0 | 02-22-2005 07:39 PM |
| Column order and dynamically created columns | MattB | ASP .Net Datagrid Control | 1 | 12-01-2004 11:36 PM |
| Binding collection to a asp.net DataGrid - order of columns display question | David Laub | ASP .Net | 0 | 08-03-2004 08:23 PM |
| Binded Datagrid Formatting columns or hiding columns | ton | ASP .Net Web Controls | 2 | 02-11-2004 04:09 AM |
| Columns and Inherited Datagrid...Active Schema does not support columns | rob thomson | ASP .Net Datagrid Control | 0 | 09-04-2003 03:09 PM |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc..
SEO by vBSEO ©2010, Crawlability, Inc. |




