将按钮作为网格视图中的最后一列放置
我有一个网格视图,我通过代码添加列:
//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
设置为数据源中字段的名称。
这样,您可以设置列的确切顺序。