改变gridview中commandField的顺序

本文关键字:顺序 commandField gridview 改变 | 更新日期: 2023-09-27 18:14:46

我有一个网格视图,这是完全由编程的边界。我添加了一个选择的命令字段,但它显示在第一列。但我想改变它的顺序到最后一列。我尝试使用Displayindex,但该列不涉及标题。

这是我的gridview的样子

         UserID   UserName  UserAddress 
    -------------------------------------------------
  Select   1      testname  testaddress

我只想把Select传递到最后一列

         UserID   UserName  UserAddress 
    -------------------------------------------------
          1      testname  testaddress   Select 

 <asp:GridView ID="GridForUnits" runat="server" CellPadding="4" ForeColor="#333333"
                        GridLines="None" Style="text-align: left" Width="851px" OnRowDataBound="GridForUnits_RowDataBound"
                        OnSelectedIndexChanged="GridForUnits_SelectedIndexChanged1">
                        <AlternatingRowStyle BackColor="White" />
                        <Columns>
                            <asp:CommandField ShowSelectButton="True" />
                        </Columns>
                        <EditRowStyle BackColor="#7C6F57" />
                        <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
                        <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
                        <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
                        <RowStyle BackColor="#E3EAEB" />
                        <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
                        <SortedAscendingCellStyle BackColor="#F8FAFA" />
                        <SortedAscendingHeaderStyle BackColor="#246B61" />
                        <SortedDescendingCellStyle BackColor="#D4DFE1" />
                        <SortedDescendingHeaderStyle BackColor="#15524A" />
                    </asp:GridView>

请帮忙,谢谢。

谢谢

改变gridview中commandField的顺序

我建议不要自动生成列,手动填充它们,然后更改所有列的可见索引,将选择按钮设置为最后一个。

更多说明在这里

其他解决方案:在RowDataBound事件中移动table cell:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        GridViewRow row = e.Row;

        List<TableCell> cells = new List<TableCell>();

        foreach (DataControlField column in GridView1.Columns)
        {
            // Retrieve first cell
            TableCell cell = row.Cells[0];

            // Remove cell
            row.Cells.Remove(cell);

            // Add cell to list
            cells.Add(cell);
        }

        // Add cells
        row.Cells.AddRange(cells.ToArray());
    }

链接到源文件