2013-08-26 59 views
0

我正在創建一個動態的網格視圖,並且有一部分爲編輯創建了新的事件處理程序。我還創建了一個用於進行實際編輯的新方法,但我需要將它作爲參數之一傳遞給一個數據表名稱,以便我可以重新綁定它。我想不出哪裏添加參數:將參數添加到新的事件處理程序

 GridView gridData = new GridView(); 
     gridData.ID = "test"; 
     gridData.AutoGenerateEditButton = true; 
     gridData.RowEditing += new GridViewEditEventHandler(grid_RowEditing); 
     gridData.DataSource = tbl; 
     gridData.DataBind(); 


protected void grid_RowEditing(object sender, GridViewEditEventArgs e) 
    { 
     ((GridView)sender).EditIndex = e.NewEditIndex; 

     // I don't know how to pass the datasource name to this method, or if its even possible, because i won't ever know the actual gridview name because its dynamically created 
     //((GridView)sender).DataSource = ; 
     ((GridView)sender).DataBind(); 

回答

0

如果您不需要解開事件處理要做到這一點最簡單的方法是用一個lambda表達式

string dataSourceName = ...; 
gridData.RowEditing += (sender, e) => grid_RowEditing(gridData, dataSourceName, e); 
     gridData.DataSource = tbl; 
     gridData.DataBind(); 


void grid_RowEditing(GridView gridData, string dataSourceName, GridViewEventArgs e) { 
    ... 
} 
+0

真棒,我剛剛嘗試過,但現在在grid_RowEditing的方法下,這部分((GridView)sender).EditIndex = e.NewEditIndex;說「e」不在當前背景 –

+0

@BradHazelnut中,你可以使用相同的技術來傳遞'e'。我會更新我的回答 – JaredPar

+0

真棒,這是完美的,非常感謝,現在雖然,當我點擊編輯按鈕它只是做回發,我需要手動把代碼放在那裏顯示文本中的所有字段框?我認爲AutoGenerateEditButton = true;照顧那 –

相關問題