отправить выбранные строки таблиц данных jquery на сервер c # asp.net

#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();
  

Главное, что следует помнить, это

  1. Значение .value потребуется после того, как вы получите элемент (скрытое поле) по идентификатору. Обязательно используйте маленькую v, а не заглавную V, поскольку последнее не будет работать, а на стороне сервера это заглавная V

  2. В скрытом поле хранится строка, поэтому обязательно добавьте .метод toString(), если вы используете число.

Кстати, переменная rows является массивом.