2011-12-13 112 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