Программная установка события itemcommand - PullRequest
1 голос
/ 13 декабря 2011

У меня есть сетка, которую я пытался настроить в коде.До сих пор все шло гладко и работало, но когда я иду, чтобы установить событие itemcommand или любое другое событие, когда я нажимаю на команду или делаю что-то, что должно вызвать событие, ничего не заканчивается.Так что мне было интересно, что именно я делаю неправильно с моим объявлением в моей команде item.Вы найдете мой код ниже:

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 ]

2 голосов
/ 13 декабря 2011

Попробуйте поместить createRadGrid () в событие page_init или page_load .если вы устанавливаете событие после, это может быть причиной того, что оно не будет срабатывать.

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

Приветствия.

0 голосов
/ 13 декабря 2011

Попробуйте переместить эту строку:

PlaceHolder_RadGridView.Controls.Add(rg);

Сразу после этой строки:

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

И посмотри, имеет ли это значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...