3

以及如何在运行时通过简单地按 Tab 键在 gridview 中添加新行?

4

5 回答 5

11

如果您使用的是 ASP.NET 4.0 或更高版本,则可以使用 ShowHeaderWhenEmpty 属性并将其设置为 true,如下所示:

<asp:GridView runat="server" id="gv" ShowHeaderWhenEmpty="true">
    // Normal grid view logic would go here
</asp:GridView>

这是ShowHeaderWhenEmpty的 MSDN 文档的链接

如果您使用的是 ASP.NET 3.5 或更早版本,那么即使没有数据,您也必须使用“空行”技巧使标题显示在 GridView 中,如下所示:

List<string> rows = new List<string>(
new string[] { "Row 1", "Row 2", "Row 3" });

rows.Clear();
if (rows.Count > 0)
{
    gv.DataSource = rows;
    gv.DataBind();
}
else
{
    rows.Add("");
    gv.DataSource = rows;
    gv.DataBind();
    gv.Rows[0].Visible = false;
}

注意:在这个人为的例子中,当我们在检查列表中的项目数量之前清除列表时,else 总是会执行,但是你应该明白这里的想法;添加一个“空”行,绑定网格视图,然后隐藏您刚刚添加的行。“空”行的初始绑定将使标题显示,然后被隐藏的行将使其看起来像一个空的网格视图。

于 2013-06-12T14:47:47.520 回答
2
GridView1.DataSourceID = null;
GridView1.DataBind();

确保它是DataSourceID而不是 DataSource。

于 2013-08-13T17:21:45.560 回答
0

如果您使用的是 .NET 4.0 或更高版本,您可以在 GridView 上设置一个属性 - ShowHeaderWhenEmpty。只要确保您实际上绑定到一个空列表即可。

于 2013-06-12T14:33:08.037 回答
0

如果您使用表作为数据源。您只需要创建一个具有空白值的新行。

table.Rows.Add(table.NewRow());
于 2013-06-13T03:03:27.003 回答
0

GridView1.DataSourceID = String.Empty; GridView1.DataBind();

于 2020-08-20T02:48:21.670 回答