3

GridView中没有ShowFooterWhenEmpty属性;(

当我不使用 ObjectDataSource 进行数据绑定时,它很简单:

...
    SqlDataAdapter adapter = new SqlDataAdapter(cmd);
    DataTable data = new DataTable();
    conn.Open();
    adapter.Fill(data);
    conn.Close();

    if (data.Rows.Count > 0)
    {
        grid.DataSource = data;
        grid.DataBind();
    }
    else
    {
        data.Rows.Add(data.NewRow());
        grid.DataSource = data;
        grid.DataBind();

        int TotalColumns = grid.Rows[0].Cells.Count;
        grid.Rows[0].Cells.Clear();
        grid.Rows[0].Cells.Add(new TableCell());
        grid.Rows[0].Cells[0].ColumnSpan = TotalColumns;
        grid.Rows[0].Cells[0].Text = "No Records Found";
    }
...

Page_Load() if (!IsPostBack) {...}

现在ObjectDataSource代表自动绑定和分页。

我应该如何呈现插入按钮所在的页脚?

尝试过OnSelected的事件,ObjectDataSource但我不知道如何在其中添加一行。

protected void ODS_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
    DataSet ds = e.ReturnValue as DataSet;
    // Add empty row here or 'No Records Found' string to force Footer show
}

请帮忙!

4

1 回答 1

1

如您所知,当 GridView 为空(无行)时,页脚不会显示。解决方法是确保在不存在真实数据时从 ObjectDataSource 返回一个虚拟行。

我建议检查GridView DataBound事件中的行数,如果没有,则修改ObjectDataSource的SelectMethod以返回一个虚拟数据的虚拟行,然后重新绑定gridview。虚拟数据的一个示例可能是:

ID : null
Name : 'No data, please add using form below' ...etc...
Description : null
...
etc
...

GridView 将在重新绑定后显示页脚。

于 2013-04-07T22:43:57.463 回答