2010-09-02 73 views
1

我一直在使用jqGrid ASP .Net,真的很满意它,但我需要一个永久空白的新行在网格的顶部,它允许用户输入一个新的行而不是使用添加行对话框。jqGrid ASP .Net永久'添加新行'

从查看trirand论坛,这是目前不支持'开箱'。

我看过这个论坛帖子http://www.trirand.net/forum/default.aspx?g=posts&t=212,但它不起作用(警告显示,但没有其他事情发生),并且还要求用户单击新建按钮而不是始终位于网格顶部的新行。

任何帮助将不胜感激, 干杯

附加信息: 我在哪里,用户输入的每个新行的网格顶部想要一个永久的空白行,低于此行将是数据已经输入(在页面加载时从数据库加载)。当新行被添加时(当用户点击进入时),行被显示在网格中(我收集到的也会触发OnRowAdding事件,以便插入到sql服务器中),永久性新行将清除其值新条目。我也使用内联编辑(这是工作正常),并将更改提交到SQL Server数据库。我通过将数据源设置为数据表来填充网格,并调用DataBind()

回答

0

看看我为the answer创建的this example。该示例与本地内联编辑一起工作,并在开始时用空数据填充网格。您可以对其进行修改并仅填写第一行的空白数据,其他所有行填充“真实”数据。

另一种方法:你可以把“新建”按钮排以上(见Add toolbar in the bottom of the header using jqgrid介绍如何做到这一点)第二导航栏上。所以用户会立即看到它。您也可以放置custom button而不是标准的“新建”按钮。这个自定义按钮(例如“+”)可以插入一个新行并进入内联编辑模式。

如果所有这些都不是你想要的,你应该在你的问题中包括更详细的信息你使用哪种编辑方式(内联,单元格或表单),数据的保存位置(本地,只在服务器上还是使用loadones:true有一个混合数据保存)。

+0

奥列格,你提供的第一个例子是接近我后。我在我的文章中包含了更多信息,以便您更好地了解我想要实现的目标。我将与你提供的源代码一起玩,并看看我如何去。如果你碰巧有任何提示或者做了类似的事情,那么欢迎任何帮助:) – Maton 2010-09-02 23:03:25

0

端起来解决通过插入新行到DataTable这个问题,当我填充网格如下:

 DataRow dr = dtTimesheets.NewRow(); 
     dtTimesheets.Rows.InsertAt(dr, 0); 
     grdTimesheet.DataSource = dtTimesheets; 
     grdTimesheet.DataBind(); 

然后在RowEditing方法我检查它是否是实际上新行并执行我插入而不是编辑,然后重新加载网格,使网格的顶部再次放置一个新的空行。