Мне нужно вернуть DataTable в Ajax из c # (WebMethod).
Я отправляю «Значение» в WebMethod. Значение принимается и используется в качестве параметра для процедуры в приведенном ниже коде (getObj.getValuesTableAdapter (Value);).
Затем процедура возвращает datatable (dtObj) и ajax должен получить его обратно в части «success».
Мне нужна помощь с этим кодом. Я попробовал все, но не получилось.
Я не могу вернуть DataTable напрямую из [WebMethod], как это. Мне нужно преобразовать DataTable в JSON перед отправкой клиенту.
Это мой код c #:
[WebMethod(EnableSession = true)]
public static DataTable GetObject(int Value)
{
LogicTableAdapters.getValuesTableAdapter getObj = new LogicTableAdapters.getValuesTableAdapter();
DataTable getObj = getObj.getValuesTableAdapter(Value);
DataTable dtObj = new DataTable();
dtObj.Columns.AddRange(new DataColumn[4]{
new DataColumn("ObjectID", typeof(string)),
new DataColumn("ObjectName", typeof(string)),
new DataColumn("ObjectValue", typeof(string)),
new DataColumn("ParentID", typeof(int)),
});
foreach (DataRow dr in getObj.Rows)
{
dtCh.Rows.Add(dr["ObjectID"].ToString(), dr["ObjectName"] == DBNull.Value ? null : dr["ObjectValue"].ToString(), dr["ParentID"].ToString());
}
return dtObj;
}
Это мой Аякс:
$(document).on('click', ".Btn", function () {
header = $(this).closest('tr').find('.ColumnID').text()
console.log(Value);
$.ajax({
type: "POST",
url: "MyAdmin.aspx/GetObject",
data: JSON.stringify({ 'Value': Value }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function () {
//code that should receive datatable to be displayed
},
error: function () {
}
});
});
Заранее спасибо!