Добавление строк во временный GridView - PullRequest
1 голос
/ 26 августа 2009

Мне нужна страница ASP.net, на которой пользователь может добавлять строки в сетку (подумайте, вводя значения в текстовое поле и нажимая кнопку Добавить, чтобы добавить в сетку). Нажатие кнопки «Отправить» сохранит все строки в базе данных.

Какое разумно простое решение вы бы порекомендовали для сайта с низким трафиком?

1 Ответ

2 голосов
/ 02 сентября 2009

Я делал это несколько раз. Основная предпосылка моего решения заключается в том, что вы загружаете данные в локальную коллекцию и сохраняете их в ViewState страницы.

List<MyObject> lst = new List<MyObject>();

// Populate the list from the database here

// Store this list in the ViewState
ViewState["List"] = lst;

Затем у меня есть функция, которая связывает этот список с GridView, который я вызываю в первой Page_Load, и любая функция, которая модифицирует этот список:

function BindList() {
    List<MyObject> lst = (List<MyObject>) ViewState["List"];
    GridView1.DataSource = lst;
    GridView1.DataBind();
}

Чтобы добавить новый элемент ...

function cmdAdd_Click(object sender, EventArgs e) {
    // Retrieve list from ViewState
    List<MyObject> lst = (List<MyObject>) ViewState["List"];

    // Add the new item
    MyObject newObj = new MyObject();    // Populate this from your form
    lst.Add(newObj);

    // Update the list in the ViewState
    ViewState["List"] = lst;

    // Update the grid to show the new item
    BindList();
}

Если вы хотите сохранить все элементы в базе данных, просто получите список из ViewState.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...