我一直在使用jqGrid ASP .Net并且非常满意它但我在网格顶部需要一个永久的空白新行,允许用户动态输入新行而不是使用添加行对话框
通过查看trirand论坛,目前不支持“开箱即用”。
我已经看过这个论坛帖子http://www.trirand.net/forum/default.aspx?g=posts&t=212但它不起作用(显示警报但没有其他事情发生)并且还要求用户单击“新建”按钮而不是新行始终位于顶部网格。
任何帮助将不胜感激, 干杯
其他信息: 我希望在网格顶部有一个永久的空白行,用户输入每一个新行,此行下面将是已输入的数据(在页面加载时从数据库加载)。当添加新行时(当用户点击进入时),行将显示在网格中(我收集的行也会触发OnRowAdding事件以便我插入到sql server中)并且永久新行将清除其值准备好新条目。我也使用内联编辑(工作正常)并将更改提交到SQL Server数据库。通过将数据源设置为数据表并调用DataBind()
,我在页面加载时填充网格答案 0 :(得分:0)
查看我为this example创建的the answer。该示例使用本地内联编辑,并在开头用空数据填充网格。您可以修改它并仅填充第一行空数据,所有其他行填充“真实”数据。
另一种方法:您可以在第二个导航栏上的行上方放置“新建”按钮(请参阅Add toolbar in the bottom of the header using jqgrid,其中介绍了如何执行此操作)。所以用户会立即看到它。您也可以放置custom button而不是标准的“新建”按钮。此自定义按钮(例如“+”)可以只插入一个新行并进入内联编辑模式。
如果所有这些都不是您想要的,那么您应该在您的问题中包含更详细的信息,您使用哪种编辑方式(内联,单元格或表单),保存数据(本地,仅在服务器上或使用{ {1}}保持混合数据。)
答案 1 :(得分:0)
当我按如下方式填充网格时,通过在数据表中插入一个新行来解决此问题:
DataRow dr = dtTimesheets.NewRow();
dtTimesheets.Rows.InsertAt(dr, 0);
grdTimesheet.DataSource = dtTimesheets;
grdTimesheet.DataBind();
然后在RowEditing方法上,我检查它是否实际上是新行并执行我的插入而不是编辑,然后重新加载网格,再次在网格顶部放置一个新的空行。