2015-05-11 5 views
0

У меня есть datatable, который привязан к Gridview на странице для отображения данных. , тогда у меня есть кнопка Добавить новую кнопку, которая открывает Usercontrol в модуле Bootstrap Modal. Это Addnew UserControl должна иметь форму, чтобы ввести данныеСохранять информацию в DataTable

ID Адрес Государственный Город Страна

Эти данные добавляются в DataTable.

Сейчас нет базы данных.

Начато формирование DataTable, затем добавляются несколько столбцов типа строки, а затем добавляются строки, все это в Pageload Webform, чем есть кнопка AddNew, которая открывает UserControl в этом UserControl, есть метки и текстовые поля и кнопка добавления, Мне нужно добавить строку в Datatable, инициированную в Webform в этом Usercontrol.

Ниже приведен код на Webform

protected void Page_Load(object sender, EventArgs e) 
    { 
    //if (!IsPostBack) 
    //{ 
    DataTable mytestdata = new DataTable(); 
    Session["DataTable"] = mytestdata; 

    if (mytestdata.Columns.Count == 0) 
    { 
     mytestdata.Columns.Add("ID", typeof(string)); 
     mytestdata.Columns.Add("Address 1", typeof(string)); 
     mytestdata.Columns.Add("Street", typeof(string)); 
     mytestdata.Columns.Add("City", typeof(string)); 
     mytestdata.Columns.Add("Post Code", typeof(string)); 
     mytestdata.Columns.Add("Country", typeof(string)); 
     } 

    if (mytestdata.Rows.Count == 0) 
    { 
     mytestdata.Rows.Add("1341", "Number 49", "Phibsboro", "Dublin 2",    
     "11111", "Ireland"); 
     mytestdata.Rows.Add("1241", "Number 46", "Dundrum", "Dublin 6",  
     "124354", "uk"); 
     mytestdata.Rows.Add("1351", "Number 43", "Phibsboro", "Dublin 7", 
     "23445", "Ireland"); 
     mytestdata.Rows.Add("1141", "Number 59", "Dundrum", "Dublin 8", 
     "11111", "uk"); 
     mytestdata.Rows.Add("1234", "Number 69", "Dundrum", "Dublin 9", 
     "23432", "Ireland"); 
     mytestdata.Rows.Add("1234", "Number 29", "Phibsboro", "Dublin 10", 
     "11111", "uk"); 
     mytestdata.Rows.Add("4312", "Number 52", "Dundrum", "Dublin 18",  
     "23422", "Ireland"); 

     mytestdata.Rows.Add("5467", "Number 19", "Dundrum", "Dublin 19", 
     "11111", "Ireland"); 
     mytestdata.Rows.Add("4352", "Number 21", "Phibsboro", "Dublin 24", 
     "125632", "uk"); 
     mytestdata.Rows.Add("6543", "Number 15", "Dundrum", "Dublin 19", 
     "11111", "Ireland"); 
     mytestdata.Rows.Add("5785", "Number 24", "Phibsboro", "Dublin 12", 
     "11111", "uk"); 
    } 

    mytestdata = (DataTable)Session["DataTable"]; 
    ucModalCrud._dtCRUD = mytestdata; 

    ucModalCrud._pathToAddViewRecordUserControl =        "~/PortalFramework/Shared/ModalCRUD/ForTesting/ucViewRecordDetails.ascx"; 

ucModalCrud._pathToAddNewRecordUserControl = "~/PortalFramework/Общие/ModalCRUD/ForTesting/ucAddDetails.ascx";

//} 

}

Ниже приводится код в UserControl

protected void btnAdd_Click(object sender, EventArgs e){ 

    DataTable mytestdata = new DataTable(); 
    mytestdata = (DataTable)Session["DataTable"]; 

    mytestdata.Rows.Add(txtID.Text, txtAddress1.Text, txtStreet.Text,  
    txtCity.Text, txtPostCode.Text, txtCountry.Text); 
    Session["DataTable"] = mytestdata; 

    } 

мне нужна способ сохраняться тем же объект DataTable по всему сайту

ответ

0

DataTable являются довольно тяжелыми предметами и не является рекомендуется хранить в ViewState или Session, если на то пошло. Сценарий, который вы описываете, касается кэширования данных. Таким образом, вы можете использовать кеш ASP.Net для хранения данных и повторного использования в приложении. См. Пример here

+0

Вы решили эту проблему ?. Если вы найдете ответ полезным, пожалуйста, не забудьте проголосовать или принять ответ. Вы также можете проголосовать за ответ, если найдете ответ неправильным или неработающим. – BSG

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