关于gridviews的一些问题

时间:2010-03-09 18:54:39

标签: asp.net gridview asp.net-3.5

我需要在我的一个网页上设置网格,用于输入预算信息。我打算使用gridview,但如果其他东西能更好地满足我的需求,我愿意接受其他想法。我的网格中需要以下功能:

  1. 页面加载后,所有单元格都处于编辑模式
  2. 底部需要一个页脚行 计算特定列的总数
  3. 我在gridview中查找了这个功能,但没有任何运气。关于如何在gridview中执行上述两个项目的任何链接或建议将不胜感激。

    注意:我正在使用Visual Studio 2008

2 个答案:

答案 0 :(得分:1)

IMO使用ListView自行编码会更好。您可以查看DataBound()和ItemDataBound()事件。 GridView没有内置的功能。

OTOH,Matt Dotson有一个blog post,描述了如何在编辑模式下构建包含所有行的GridView。

答案 1 :(得分:0)

页脚中的总计可以使用在每次数据更改和表单加载时执行的javascript的组合来应用,并通过GridView的RowDataBound事件动态地将文本框或标签添加到页脚。例如,

// Create textboxes in footer to hold hours totals
if (e.Row.RowType == DataControlRowType.Footer)
{
    e.Row.CssClass = "wgv-ft";

    for (int i = 0; i < NumHoursTextBoxes; ++i)
    {
        var tb = new TextBox();
        tb.ID = String.Format("Hours{0}TotalTextBox", i);
        tb.CssClass = "total";
        tb.Enabled = false;
        e.Row.Cells[FirstHoursTextBoxIndex + i].Controls.Add(tb);
    }
}

您可能只想使用ItemTemplates并始终显示可编辑的文本框或其他控件,而不是使用GridView提供的内置编辑功能(EditItemTemplates)。我用过这种技术。您仍然可以利用验证器和核心ASP.NET控件集,但是您必须编写相当多的javascript来管理对总计的更新。

我希望这会有所帮助。祝你好运。