2013-08-27 5 views
0

У меня есть раскрывающийся список asp.net и элемент управления gridview asp.net. При изменении элемента выпадающего списка из базы данных извлекается новая строка.Добавление нового содержимого в сеанс

Я сохраняю это в сеансе. В следующий раз в элементе dropdownlist появится изменение, будет - новая строка, полученная из базы данных, и я хотел бы добавить эту строку тоже к сеансу.

У меня есть событие dropdownlist_selectedIndexchanged ниже:

protected void ddlClient_SelectedIndexChanged(object sender, EventArgs e) 
    { 
    int x = int.Parse(ddlClient.SelectedValue); 

    DataSet ds = GetRowFromDatabase(x); 
    Session["old"] = ds; 
    ((DataSet)Session["old"]).Merge(ds); 

    gridview.DataSource = Session["old"] ; 
    gridview.DataBind(); 

} 

Я не могу понять, как сохранить свои добавления строки в переменной сеанса, каждый раз, когда мои изменения DropDownList?

+1

Так что это действительно проблема с 'Merge', правильно? –

ответ

2
protected void ddlClient_SelectedIndexChanged(object sender, EventArgs e) 
    { 
    int x = int.Parse(ddlClient.SelectedValue); 

    DataSet ds = GetRowFromDatabase(x); 

    //the first time initialize the session variable 
    if(Session["old"] == null) 
    { 
     Session["old"] = ds; 
    } 
    else 
    { 
     ((DataSet)Session["old"]).Merge(ds); 
    } 

    gridview.DataSource = Session["old"] ; 
    gridview.DataBind(); 

} 
+0

+1 Спасибо! То, что я искал! – CodeNinja

+0

@SqlSamurai помните, что каждый раз, когда вы назначаете или используете сеанс [«переменная»] происходит сериализация, и если данные большие, это может повлиять на производительность, вы можете использовать промежуточные переменные для доступа к переменной сеанса один раз и обновленную это когда нужно только один раз –

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