Событие кнопки EditItemTemplate Datagrid не запускается - PullRequest
0 голосов
/ 01 апреля 2011

Я динамически создаю шаблон элемента в Gridview.

TemplateColumn BtnTmpField = new TemplateColumn(); 
BtnTmpField.ItemTemplate = new DynamicallyTemplatedGridViewHandler(ListItemType.Item, "Edit", "Button");  
BtnTmpField.HeaderTemplate = new DynamicallyTemplatedGridViewHandler(ListItemType.Header, "Edit", "Command");  
BtnTmpField.EditItemTemplate = new DynamicallyTemplatedGridViewHandler(ListItemType.EditItem, "Update", "Button"); dgdefault.Columns.Add(BtnTmpField);

public void InstantiateIn(System.Web.UI.Control Container) 
{ 
    switch (ItemType) 
    { 
        case ListItemType.Header: Literal header_ltrl = new Literal(); 
        header_ltrl.Text = "" + FieldName + ""; 
        Container.Controls.Add(header_ltrl); 
        break; 
        case ListItemType.Item: 
        switch (InfoType) 
        { 
             case "Button": 
             LinkButton edit_button = new LinkButton(); 
             edit_button.ID = "edit_button"; 
             edit_button.Text = "Edit"; 
             edit_button.CommandName = "Edit"; 
             Container.Controls.Add(edit_button); 
             break; 
        }
        break;
        case ListItemType.EditItem: 
             if (InfoType == "Button") 
             { 
             LinkButton update_button = new LinkButton(); 
             update_button.ID = "update_button"; 
             update_button.CommandName = "Update"; 
             update_button.Text = "Update  "; 
             LinkButton cancel_button = new LinkButton(); 
             cancel_button.ID = "cancel_button"; 
             cancel_button.CommandName = "Cancel"; 
             cancel_button.Text = "Cancel"; 
             Container.Controls.Add(update_button); 
             Container.Controls.Add(cancel_button);
            }                 
            break;
      }     
} 

Когда я выбираю кнопку «Редактировать», появляются кнопки «Обновить» и «Отмена» с выбранной строкой, которую можно редактировать.Событие ItemCommand DataGrid срабатывает правильно при нажатии «Изменить».Когда я нажимаю кнопки «Обновить» или «Отмена», ничего не срабатывает.ItemCommand не запускается, равно как и UpdateCommand или CancelCommand, когда я явно помещаю onUpdateCommand или onCancelCommand на страницу ascx.Я не могу понять, почему ничего не срабатывает, когда нажимаются кнопки в EditItemTemplate.Также все загружается при каждой обратной передаче page_init.Любые советы будут полезны

Ответы [ 3 ]

1 голос
/ 04 апреля 2011

Я понял это. Я в основном создал шаблон элемента и добавил 3 отдельные кнопки без использования элемента редактирования. В функции привязки элемента сетки данных я просто скрываю и показываю кнопки, которые нужно показать.

0 голосов
/ 11 ноября 2011

У меня была такая же проблема сегодня.Я заметил, что он вызывает шаблон «Заголовок» для редактирования элементов.не знаю почему, но добавьте следующее перед «switch»:

System.Diagnostics.Debug.WriteLine(string.Format("Template: {0}",ItemType.ToString()));

если вы тестируете с небольшим количеством записей, вы должны увидеть, что он вызывает «header»Тип элемента при попытке редактировать запись.

Мне было бы интересно узнать, испытываете ли вы то же самое.

0 голосов
/ 01 апреля 2011

Связываете ли вы события в PreRender сетки?

...