#javascript #c# #asp.net #datatables
#javascript #c# #asp.net #таблицы данных
Вопрос:
function Delete()
{
var iTable = $('#Dims').DataTable();
var rows = iTable.rows('.selected').indexes();
document.getElementById('<%=hdnRows.ClientID %>') = rows;
}
Я пытаюсь получить строки, выбранные в datatable, и поместить их в скрытое поле с именем hdnRows, чтобы я мог удалить выбранные строки из списка, который я использую для заполнения datatable. Я не уверен, какого типа переменная rows, поскольку она может содержать несколько индексов (это должен быть массив).
Я попытался использовать цикл for и пробежаться по переменным rows и добавить его в hdnRows в строке, разделенной запятыми.
for (var i = 0; i < length; i ) {
document.getElementById('<%=hdnRows.ClientID %>') = rows[i] ',';
}
Это также ничего не добавило в скрытое поле. Я даже пытался жестко кодировать число, просто чтобы посмотреть, сработает ли это
document.getElementById('<%=hdnRows.ClientID %>') = '3';
Я выполняю функцию javascript под названием delete из метода onclientclick кнопки asp.
<asp:Button ID="btnDelete" runat="server" OnClientClick="Delete()" Text="Del" />
Все, что я читаю, говорит о том, что это должно сработать. Если кто-нибудь ответит на этот вопрос, обязательно укажите тип данных строк var.
Оказавшись на стороне сервера, мне просто нужно удалить выбранные строки из
List<structs>
Я использую для заполнения таблицы
Ответ №1:
Я был очень близок.
document.getElementById('<%=hdnRows.ClientID %>').value = rows[0].toString();
Главное, что следует помнить, это
-
Значение .value потребуется после того, как вы получите элемент (скрытое поле) по идентификатору. Обязательно используйте маленькую v, а не заглавную V, поскольку последнее не будет работать, а на стороне сервера это заглавная V
-
В скрытом поле хранится строка, поэтому обязательно добавьте .метод toString(), если вы используете число.
Кстати, переменная rows является массивом.