
/// 为AspxGridView添加序号列,附件数量列
/// </summary>
/// <param name="_grid"></param>
public void SetGridAddNumberCol(AspxGridView _grid){if (_grid != null){if (_grid.Columns["序号"] == null){GridViewDataTextColumn col = new GridViewDataTextColumn()
col.HeaderStyle.HorizontalAlign = HorizontalAlign.Center
col.CellStyle.HorizontalAlign = HorizontalAlign.Center
col.EditFormSettings.Visible = DevExpress.Web.ASPxClasses.DefaultBoolean.False
col.Caption = "序号"
col.VisibleIndex = 0
_grid.Columns.Add(col)//这里主要是用来设置序号列的显示顺序,我们总是希望序号列显示在列表的最前面吧,但如果前面还有一个选择列的话,序号列就应该位于选择列的后面,也就是第二列。当然了,这段代码是可以根据情况来修改或者可以完全删除掉的。
如果能够不管绑定的数据条数是多是少,都能始终显示相同的行数就好了,也就是说,当 GridView 绑定的数据条数不满一页时,通过某种方法在 GridView 中添加空行,使 GridView 能够始终显示 PageSize 设置的行数。那么怎样添加空白行呢?还是利用 GridView 的 DataBound 事件,在绑定结束后,通过判断 GridView 的 Rows 属性将行数补充到和 PageSize 设置的大小一样,具体代码和效果如下:
public void gridView_DataBound(object sender, EventArgs e)
{
if (gridView.Rows.Count != 0 &&gridView.Rows.Count != gridView.PageSize)
{
Control table = gridView.Controls[0]
if (table != null)
{
for (int i = 0i <gridView.PageSize - gridView.Rows.Counti++)
{
int rowIndex = gridView.Rows.Count + i + 1
GridViewRow row = new GridViewRow(rowIndex, -1, DataControlRowType.Separator, DataControlRowState.Normal)
row.CssClass = (rowIndex % 2 == 0) ? "alternate" : "item"
for (int j = 0j <gridView.Columns.Countj++)
{
TableCell cell = new TableCell()
cell.Text = " "
row.Controls.Add(cell)
}
table.Controls.AddAt(rowIndex, row)
}
}
}
}
需要注意到是:
1. 添加的 GridViewRow 的 RowType 需要设置成 Seperator;
2. 设置空白行内地 TableCell 属性时,应注意 GridView 对应列的 Visible 属性是否设置为 false,和 GridView 的 AutoGenerateCollomn 是否设置为 true,如果是,那么应该对应的做一些处理。
请问你添加完成以后,重新绑定Gridview了吗?也就是重新读一次数据库?
ASPX如果想要数据有改变,是需要刷新,即重新绑定数据的。这个是不同于WINFORM的。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)