我需要在我的一个网页上有一个网格,用于输入预算信息。我打算使用gridview,但如果其他想法能更好地满足我的需求,我愿意接受其他想法。我需要以下功能在我的网格:关于gridviews的几个问题
- 所有的细胞,一旦在编辑模式下在页面加载
- 需要在底部的页脚行 计算总计为特定列
我在gridview中查找了这个功能,但没有任何运气。有关如何在gridview中完成上述两项的任何链接或建议,我们将不胜感激。
注:我使用Visual Studio 2008
我需要在我的一个网页上有一个网格,用于输入预算信息。我打算使用gridview,但如果其他想法能更好地满足我的需求,我愿意接受其他想法。我需要以下功能在我的网格:关于gridviews的几个问题
我在gridview中查找了这个功能,但没有任何运气。有关如何在gridview中完成上述两项的任何链接或建议,我们将不胜感激。
注:我使用Visual Studio 2008
页脚中的总数可以通过在每个数据更改和表单加载上执行的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);
}
}
而不是使用内置在GridView的报价,你可能只想使用的ItemTemplate并始终显示为可编辑的文本框或其他控件编辑功能(EditItemTemplates)。我使用过这种技术。您仍然可以利用验证器和核心ASP.NET控制集,但是您必须编写相当多的JavaScript来管理总计的更新。
我希望这会有所帮助。祝你好运。
IMO你会好得多使用ListView编码这个自己。您可以查看DataBound()和ItemDataBound()事件。 GridView控件不附带内置的功能。
OTOH,马特Dotson有blog post描述如何建立一个GridView在编辑模式中的所有行。
好吧,所以如果我使用ListView方法,我只是有一个项目模板,由每个列的文本框组成?访问这些文本框以将值保存回数据库有多难? – 2010-03-09 19:57:24