> That's right. CopyAt is good for copying and RemoveAt for deleting. Than
> you can AddAt an individual item from the array.
I am having a problem doing the CopyTo. Do you have to do it after you
>
> --
> Eliyahu Goldin,
> Software Developer
> Microsoft MVP [ASP.NET]
>
http://msmvps.com/blogs/egoldin >
http://usableasp.net >
>
> "tshad" <t@home.com> wrote in message
> news:OUzBa%23Y6HHA.1188@TK2MSFTNGP04.phx.gbl...
>> "Eliyahu Goldin" <REMOVEALLCAPITALSeEgGoldDinN@mMvVpPsS.org> wrote in
>> message news:eMIqBw75HHA.5184@TK2MSFTNGP03.phx.gbl...
>>>> 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" <t@home.com> wrote in message
>>> news:OKvaEda5HHA.5984@TK2MSFTNGP04.phx.gbl...
>>>> "Eliyahu Goldin" <REMOVEALLCAPITALSeEgGoldDinN@mMvVpPsS.org> wrote in
>>>> message news:OKUutrV5HHA.4928@TK2MSFTNGP05.phx.gbl...
>>>>> 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" <t@home.com> wrote in message
>>>>> news:e4vqDAT5HHA.1212@TK2MSFTNGP05.phx.gbl...
>>>>>>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:DataGrid
>>>>>> 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:DataGrid>
>>>>>>
>>>>>> 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
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>