将按钮作为网格视图中的最后一列放置

我有一个网格视图,我通过代码添加列:

//Retrieve "Table" from database gridOffers.DataSource = table; gridOffers.DataBind(); 

按代码添加的列是在按钮之后添加的,这不是我需要的: 在此处输入图像描述 如何确保添加到购物车按钮的最后一件事?

gridView的来源:

            

您正在通过将数据源数据绑定到GridView来定义GridView源中的列。 因此,您有两个列源; 可能有也可能没有保证的顺序,其中列被添加到GridView。

相反,为什么不将GridView的AutoGenerateColumns设置为False ,然后使用BoundField为GridView源中的数据源所需的每个字段显示指定列顺序,然后是图像和按钮列?

我不知道是否有更少的hacky方式,但您可以使用RowDataBound来更改顺序,以便AutoGenerated列跟随您的其他列:

 protected void gridOffers_RowDataBound(object sender, GridViewRowEventArgs e) { TableCell cell = e.Row.Cells[0]; e.Row.Cells.RemoveAt(0); //Move first to the end e.Row.Cells.Add(cell); cell = e.Row.Cells[0]; e.Row.Cells.RemoveAt(0); //Move second to the end e.Row.Cells.Add(cell); } 

您是否在Gridview上将AutoGenerateColumns设置为true? 如果是这样,则将其设置为false并使用asp:BoundField手动设置网格中的字段将DataField设置为数据源中字段的名称。

这样,您可以设置列的确切顺序。