2009-08-26 3 views
1

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

Для небольшого сайта трафика, какое разумное решение вы бы рекомендовали достичь?

ответ

2

Я сделал это несколько раз. Основная предпосылка моего решения заключается в том, что вы загружаете данные в локальную коллекцию и сохраняете их в 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.

Смежные вопросы