2011-12-13 75 views
1

我有一個網格,我一直試圖在後面的代碼中設置。到目前爲止,一切都一直在順利進行,但是當我去設置itemcommand事件或任何事件的時候,當我去點擊命令或做一些應該引起事件的事情時,沒有任何事情結束了。 。所以我想知道我的項目命令上的聲明究竟做錯了什麼。 您將找到我的代碼:以編程方式設置itemcommand事件

private void createRadGrid() 
    { 
     //create radgrid 
     RadGrid rg = new RadGrid(); 
     rg.ID = "RadGridView"; 

     //setting the datasource and itemcommand event handler. 
     rg.DataSourceID = "MachineDataSet"; 
     rg.ItemCommand += new GridCommandEventHandler(RadGridView_ItemCommand); 

     rg.Width = 862; 
     rg.CellSpacing = 2; 
     rg.CellPadding = 4; 
     rg.BorderWidth = 3; 
     rg.BackColor = System.Drawing.Color.Transparent; 
     rg.BorderColor = System.Drawing.Color.DarkGray; 
     rg.ForeColor = System.Drawing.Color.Black; 
     rg.ItemStyle.HorizontalAlign = HorizontalAlign.Center; 
     rg.HeaderStyle.HorizontalAlign = HorizontalAlign.Center; 
     rg.BorderStyle = BorderStyle.Ridge; 
     rg.ShowStatusBar = true; 

     rg.AllowPaging = true; 
     rg.PageSize = 5; 
     rg.PagerStyle.Mode = GridPagerMode.NextPrevAndNumeric; 
     rg.AutoGenerateColumns = false; 

     rg.MasterTableView.PageSize = 5; 
     rg.MasterTableView.DataKeyNames = new string[] { "ID" }; 
     rg.MasterTableView.ClientDataKeyNames = new string[] { "ID" }; 
     rg.MasterTableView.AutoGenerateColumns = false; 

     rg.ClientSettings.Resizing.AllowColumnResize = true; 
     rg.ClientSettings.Resizing.EnableRealTimeResize = true; 
     rg.ClientSettings.Resizing.ResizeGridOnColumnResize = true; 

     GridBoundColumn boundColumn = new GridBoundColumn(); 
     boundColumn.DataField = "ID"; 
     boundColumn.HeaderText = "ID"; 
     boundColumn.UniqueName = "MachineID"; 
     boundColumn.Visible = false; 
     rg.MasterTableView.Columns.Add(boundColumn); 

     GridBoundColumn boundColumn1 = new GridBoundColumn(); 
     boundColumn1.DataField = "SiteName"; 
     boundColumn1.HeaderText ="Site Name"; 
     boundColumn1.Resizable = true; 
     boundColumn1.ReadOnly = true; 
     rg.MasterTableView.Columns.Add(boundColumn1); 

     GridBoundColumn boundColumn2 = new GridBoundColumn(); 
     boundColumn2.DataField = "Name"; 
     boundColumn2.HeaderText = "Machine Name"; 
     boundColumn2.Resizable = true; 
     boundColumn2.ReadOnly = true; 
     rg.MasterTableView.Columns.Add(boundColumn2); 

     GridBoundColumn boundColumn3 = new GridBoundColumn(); 
     boundColumn3.DataField = "MachineType"; 
     boundColumn3.HeaderText = "Machine Type"; 
     boundColumn3.Resizable = true; 
     boundColumn3.ReadOnly = true; 
     rg.MasterTableView.Columns.Add(boundColumn3); 

     GridBoundColumn boundColumn4 = new GridBoundColumn(); 
     boundColumn4.DataField = "MachineModel"; 
     boundColumn4.HeaderText = "Machine Model"; 
     boundColumn4.Resizable = true; 
     boundColumn4.ReadOnly = true; 
     rg.MasterTableView.Columns.Add(boundColumn4); 

     GridButtonColumn buttonColumn = new GridButtonColumn(); 
     buttonColumn.ButtonType = GridButtonColumnType.PushButton; 
     buttonColumn.CommandName = "AssignNewValues"; 
     buttonColumn.Resizable = true; 
     buttonColumn.Text = "Assign New Values"; 
     rg.MasterTableView.Columns.Add(buttonColumn); 

     PlaceHolder_RadGridView.Controls.Add(rg); 
    } 

問題區域似乎是在這一行

rg.ItemCommand += new GridCommandEventHandler(RadGridView_ItemCommand); 

任何幫助或建議,不勝感激。

回答

2

嘗試放置createRadGrid()或者在page_init的Page_Load事件。如果你之後正在設置事件,那可能是它沒有開火的原因。

希望這有任何幫助。

乾杯。

0

嘗試移動這一行:

PlaceHolder_RadGridView.Controls.Add(rg); 

權這一行後:

RadGrid rg = new RadGrid(); 
rg.ID = "RadGridView"; 

,看看是否有差別。

+0

好吧剛剛試過這個,沒有改變/發生,謝謝你的迴應,雖然 – James213 2011-12-13 18:45:44

+0

好吧,你在哪裏調用createRadGrid()呢?在什麼事件?它應該是PreInit或Init。 – 2011-12-13 18:47:17