2011-12-13 2 views
1

У меня есть сетка, которую я пытался настроить в коде. Пока все идет гладко и работает, но когда я иду, чтобы установить событие itemcommand или какое-либо событие для этого вопроса, когда я иду, чтобы щелкнуть по команде или сделать что-то, что должно вызвать запуск события, ничто не заканчивается стрельбой , Поэтому мне было интересно, что именно я делаю неправильно с моей декларацией в моей команде item. Вы найдете мой код ниже:Программируемое событие 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 событие. если вы устанавливаете событие после, это может быть причиной его отсутствия.

Надеюсь, что это поможет.

Cheers.

+0

Это сделало трюк, который был инициализирован в неправильном месте – James213

+0

Его очень распространенный при работе с динамическими элементами управления, статья: http://msdn.microsoft.com/en-us/library/ms178472.aspx, помогла мне очень понять что делать в какой части жизненного цикла страницы. ура –

0

Try перемещение этой линии:

PlaceHolder_RadGridView.Controls.Add(rg); 

Право после этой строки:

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

И посмотреть, если это делает разницу.

+0

Хорошо, просто попробовал это, и ничего не изменилось/произошло, спасибо за ответ, хотя – James213

+0

Хорошо, где вы вызываете createRadGrid(), то? В каком случае? Это должно быть PreInit или Init. –

+0

Я запускал его в событии Page_load() в (! Page.IsPostBack), но теперь я пытаюсь сделать это за пределами этого утверждения. – James213

Смежные вопросы