0
以下代碼將Config.xml反序列化並將對象值加載到網格中。問題是,當我選擇一行時,它會觸發GridCustomers_RowSelected
,但配置對象爲空。我知道這是因爲每當我選擇一行時,它會回傳並忘記config對象中的值。在回發後保留對象的值
一個解決這個問題可能是我保存的配置對象保存在session,或視圖狀態。或者我反序列化IsPostBack
塊之外的對象。我不知道有沒有其他更好的解決方案來保留config對象中的值。
private Config config = null;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
config = new Config();
string file = @"C:\Config.xml";
XmlData xmlData = new XmlData(file);
config = xmlData.Deserialize();
StoreCustomers.DataSource = config.Customers;
StoreCustomers.DataBind();
}
}
protected void GridCustomers_RowSelected(object sender, DirectEventArgs e)
{
string customerID = e.ExtraParams["ID"].ToString();
string customerName = e.ExtraParams["Name"].ToString();
Customer customer = new Customer();
customer = config.Customers.Where(a=> a.ID == customerID).SingleOrDefault();
StoreCompanies.DataSource = customer.Companies;
StoreCompanies.DataBind();
}