@vip1987
Начинающий веб-разработчик

Как вывести данные из бд изменив снова сохранить?

Доброе время снова!
Подскажите на этот раз вот что:
У меня есть проект на asp.net mvc 4 с рабочей базой данных, которая крутиться на sqlexpress 2014. База слава богу работает из проекта выдаёт данные редактированные обратно сохраняет.
У меня беда вот в чем:
В админке примерно около 50 баз будет, я сделаю для каждой отдельную вьюшку. Но хочется сделать datagrid что б в него выходили данные, создал например новую строку, сохранил. И все это дело хочется примерно вот как тут сделать: Пример того что хочется, но увы я не понимаю как к jquery прикрепить определенную таблицу из БД и вывод с сохранением.
Ткните снова меня в решение этого квеста, пожалуйста!!!!
  • Вопрос задан
  • 204 просмотра
Пригласить эксперта
Ответы на вопрос 2
AlekseyNemiro
@AlekseyNemiro
full-stack developer
По указанной вами ссылке ведь есть готовый код:
var grid, dialog;
grid = $('#grid').grid({
    // ваш url, который будет передавать данные из вашей бд
    dataSource: '/Grid/GetPlayers',
    uiLibrary: 'bootstrap',
    // имена полей, которые следует выводить в таблице
    columns: [
        { field: 'ID', width: 32 },
        { field: 'Name', sortable: true },
        { field: 'PlaceOfBirth', title: 'Place Of Birth', sortable: true }
    ],
    pager: { limit: 5, sizes: [2, 5, 10, 20] }
});

Со стороны сервера можно сделать Action в обычном контроллере, который будет делать запрос к базе и возвращать данные в формате JSON. Но лучше использовать WebAPI, это будет проще.

Для удаления и сохранения отдельные методы.

Набросал простой пример: https://github.com/alekseynemiro/examples/tree/mas...
Возможно для проверки работы примера потребуется переустановить пакеты. Для этого откройте меню Сервис => Диспетчер пакетов Nuget => Консоль диспетчера пакетов и введите следующую команду:

Update-Package –reinstall

В контроллере есть метод GetAccounts, который возвращает записи из базы:

[HttpPost]
public JsonResult GetAccounts(int page, int limit)
{
  using (var context = new Database1Entities())
  {
    // получаем записи для указанной страницы
    var result = context.Account.OrderBy(
       row => row.AccountID
    ).Skip((page - 1) * limit).Take(limit).ToArray();
    int total = context.Account.Count();

    // возвращаем json
    return Json(new { records = result, total = total });
  }
}

В представлении, в коде инициализации jQuery Grid Bootstrap, указывается ссылка на этот метод:

grid = $('#grid').grid({
  // ссылка на действие GetAccounts в контроллере Home
  // запрос выполняется методом POST
  dataSource: { url: '/Home/GetAccounts', method: 'POST' },
  uiLibrary: 'bootstrap',
  columns: [
    { field: 'AccountID', sortable: true },
    { field: 'FirstName', sortable: true },
    { field: 'LastName', sortable: true },
    { field: 'Company', sortable: true },
    { field: 'Position', sortable: true }
  ],
  pager: { limit: 2, sizes: [2, 5, 10, 20] }
});
Ответ написан
Комментировать
@vip1987 Автор вопроса
Начинающий веб-разработчик
Доброе время, Алексей Немиро Алексей Немиро!
Модель к БД такая:
-------------------------------------
using System.Data.Entity;

namespace ......Areas.Auth.Models
{
public class RWOnlineDb : DbContext
{
public DbSet AccountModel { get; set; }
}
}
------------------------------------
Данные в БД таковы:
-----------------------------------
using System.Collections.Generic;
using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;

namespace .................Areas.Auth.Models
{
public class AccountModel
{
[Key]
public int AccountID { get; set; }

[Display(Name = "Email")]
[Required(ErrorMessage = "Не указан Email")]
public string Email { get; set; }

[Display(Name = "Логин")]
[Required(ErrorMessage = "Не указан Логин")]
public string Username { get; set; }

[Display(Name = "Пароль")]
[Required(ErrorMessage = "Укажите пароль")]
[DataType(DataType.Password)]
public string Password { get; set; }

[Display(Name = "Повторите пароль")]
[Compare("Password", ErrorMessage = "Подтвердите пароль")]
[DataType(DataType.Password)]
public string ConfirmPassword { get; set; }

[Display(Name = "Фамилия")]
[Required(ErrorMessage = "Не указано имя")]
public string LastName { get; set; }

[Display(Name = "Имя")]
[Required(ErrorMessage = "Не указана фамилия")]
public string FirstName { get; set; }

[Display(Name = "Компания")]
[Required(ErrorMessage = "Не указано имя")]
public string Company { get; set; }

[Display(Name = "Должность")]
[Required(ErrorMessage = "Не указано имя")]
public string Position { get; set; }

[DisplayName("Телефон")]
[Required(ErrorMessage = "Не указан телефон")]
public string Phone { get; set; }

[DisplayName("Почтовый индекс")]
public string Zip { get; set; }

[DisplayName("Область")]
public string State { get; set; }

[DisplayName("Город")]
public string City { get; set; }

[DisplayName("Адрес")]
public string Address { get; set; }
}
}
----------------------------------------------------
Но до меня не доходит как прописать путь до БД
dataSource: '/Grid/GetPlayers', ----- что это?

Заранее благодарю...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы