我正在使用带有Datatables插件的VB.Net,MVC,Razor,javaScript和jQuery。我正在渲染一个包含文本框的表。允许用户在这些文本框中键入值并将值提交给数据库。
只要表只有一页长,一切正常。如果表是多个页面,则仅提交可见的值。但是,如果用户在第一页上输入值,则移至第二页,然后返回第一页,输入文本框的值仍然存在。这让我相信这些价值观仍然存在于某个网页上。我目前正在使用javaScript getElementsByClassName
来检索值。
以下是我的表格呈现方式:
<tbody>
@For i As Integer = 0 To Model.History.Count - 1
@<tr>
<td>@Model.History(i).Quarter</td>
@If Model.History(i).MeterUsage < 0 Then
@<td>
<input class="edit" id="@(Model.History(i).dateToRecord)" type="text" placeholder="meter usage" />
</td>
Else
@<td>@Model.History(i).MeterUsage</td>
End If
<td>@Model.History(i).KeyOperator</td>
<td>@Model.History(i).BackUpKeyOperator</td>
</tr>
Next
</tbody>
这是我的javaScript:
function submitChanges(changes) {
var changes = document.getElementsByClassName('edit');
var myChanges = {
listOfIDs: [],
listOfValues: []
};
}
当用户正在查看表格的另一页时,是否有某种方法可以捕获表格第1页上输入的值?
答案 0 :(得分:1)
使用$()
API方法访问表格中的所有元素。
Sub Macro16()
With ActiveSheet
If .AutoFilterMode Then .AutoFilterMode = False
With .Cells(1, 1).CurrentRegion
.Columns(12).AutoFilter Field:=1, Criteria1:="Sheets"
With .Resize(.Rows.Count - 1, 1).Offset(1, 9)
If CBool(Application.Subtotal(103, .Offset(0, 1))) Then
.SpecialCells(xlCellTypeVisible).FormulaR1C1 = "=RIGHT(RC[1],3)"
End If
End With
.Columns(12).AutoFilter Field:=1
End With
End With
End Sub
将function submitChanges(changes) {
var changes = $('#example').DataTable().$('.edit');
var myChanges = {
listOfIDs: [],
listOfValues: []
};
}
替换为您的实际表格ID。