2009-03-30 6 views
0

Hier ist der Deal. Ich habe ein Master-Detail-Grid-Szenario. Die Master GridView wird geladen, wenn die Seite geladen wird. Ich verwende eine DataView derselben DataTable, die den Master lädt, um die Detail-GridView zu laden, indem ich filtere, was ich in der DetailGridView zeigen muss. Alles funktioniert gut, wenn ich die erste Reihe des MasterGridView betrachte. Wenn ich versuche, die zweite Reihe zu sehen, die ich die Fehlermeldung „Spalte [Nummer] nicht gefunden. Ich bemerke auch, dass die‚Tabelle‘Variable nichts.Variable Scope Problem in C#

public partial class Gridview_Template : System.Web.UI.Page 
{ 
    DataTable table = new DataTable(); 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     SqlDataReader reader = DBSqlHelperFactory.ExecuteReader(
      myconnection, 
      "crm_getcustomersummary", 
      new SqlParameter("@customerid", "99999") 
     ); 
     table.Load(reader); 
     MasterGridView.DataSource = table; 
     MasterGridView.DataBind(); 
    } 

    protected void detailGrid_DataSelect(object sender, EventArgs e) 
    { 
     string searchValue ="number=" + values.ToString(); 

     DataView dv = new DataView(
      table, searchValue, "number", DataViewRowState.OriginalRows 
     ); 
     DetailGridView.DataSource = dv; 

     // ... 
    } 
} 

Bin ich das setzen‚Tisch‘Variable in ein Sitzungszustand so existiert es über Anruf?

Antwort

1

Wenn Sie nur die Tabelle zwischen Postbacks wollen weiterhin bestehen, dann können Sie einen Blick auf Viewstate nehmen wollen. Session mehr verwendet wird, um Informationen über verschiedene Seiten für persistierende.