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
}
请帮助!
答案 0 :(得分:1)
正如您所知,当GridView为空(无行)时,页脚不会显示。解决方法是确保在没有真实数据时从ObjectDataSource返回虚拟行。
我建议检查GridView DataBound事件中的行数,如果没有,则修改ObjectDataSource的SelectMethod以返回虚拟数据的虚拟行,然后重新绑定gridview。虚拟数据的示例可以是:
ID : null
Name : 'No data, please add using form below' ...etc...
Description : null
...
etc
...
GridView将在重新绑定后显示页脚。