Пересылка значений функций JavaScript в C # - PullRequest
0 голосов
/ 30 мая 2018

Мне нужно передать значения из функции JavaScript в C #.

По сути, я получаю значения из столбцов в GridView и должен передать их в c # нажатием кнопки.

Это код JavaScript, который принимает значения из двух столбцов:

 var myCollection = [];
                       $('#MainContent_gvKarakteristike tbody').find('tr:gt(0)').each(function () {
                           var row = this;
                           var myObj = {

                               label: valuefromType($(row).find($(row).find('td:eq(1)').children())),
                               opis:valuefromType($(row).find($(row).find('td:eq(2)').children()))
                           };
                           myCollection[myCollection.length] = myObj;
                       });

                       function valuefromType(control) {
                           var type = $(control).prop('nodeName').toLowerCase();
                           switch (type) {
                               case "input":
                                   return $(control).val();
                                   break;
                               case "span":
                                   return $(control).text();
                                   break;
                               case "select":
                                   return $(control).val();
                                   break;

                           }
                       }

Функция:

function updateArray() {
                 alert('Snimljeno!');
                 var myCollection = [];
                     $('#MainContent_gvKarakteristike tbody').find('tr:gt(0)').each(function () {
                         var row = this;
                         var myObj = {

                             label: valuefromType($(row).find($(row).find('td:eq(1)').children())),
                             opis: valuefromType($(row).find($(row).find('td:eq(2)').children()))
                         };
                         myCollection[myCollection.length] = myObj;
                     });
                     $("MainContent_gvKarakteristike_ddlOpis_0").remove();
                 }

Кнопка C #:

  <asp:Button ID="btnButton" runat="server" Text="Save" autopostback="true" OnClientClick="return updateArray()" OnClick="btnButton_Click"  />

Результат пока на стороне шрифта.Значения массива (myCollection), который принимает значения при нажатии кнопки.

myCollection
(6) […]
​
0: Object { label: "1", opis: "Value1" }
​
1: Object { label: "2", opis: "Test1" }
​
2: Object { label: "3", opis: "Test2" }
​
3: Object { label: "5", opis: "4" }
​
4: Object { label: "9", opis: "Test4" }
​
5: Object { label: "15", opis: "Test5" }
​
length: 6

Мне нужна помощь, чтобы передать значение из javascript с принятыми значениями в C #, чтобы впоследствии я мог сохранить их в базе данных.

protected void btnButton_Click(object sender, EventArgs e)

{

}

1 Ответ

0 голосов
/ 30 мая 2018

Вы можете передать значения в бэкэнд-код с помощью вызова ajax с помощью атрибута WebMethod.

Таким образом, ваш код бэкэнда будет выглядеть как

[WebMethod]
public static string StoreGridData(object[] obj)
{
   if (obj.Length == 0) return string.Empty;

   //save values to database

   return "Success";
}

Ваш код шрифта будет

function updateArray() {
 //do your normal check to get the data for your collection
$.ajax({
    type: "POST",
    url: "Yourpage.aspx/StoreGridData",
    data: {obj: myCollection },
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(response) {
        alert(response.d);
    },
    failure: function(response) {
        alert(response.d);
    }
 });
}

Не забудьте добавить ссылку Using System.Web.Services в свой CS файл.Наконец, измените код кнопки на

<button id="someButton" onclick="updateArray()" type="button">Save</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...