首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Datagrid EditItemTemplate按钮事件未触发

Datagrid EditItemTemplate按钮事件未触发
EN

Stack Overflow用户
提问于 2011-04-02 01:05:52
回答 3查看 2.6K关注 0票数 0

我在Gridview中动态创建一个Item模板。

代码语言:javascript
复制
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;
      }     
} 

当我选择"Edit“按钮时,"Update”和"Cancel“按钮显示所选行可编辑。当单击“编辑”时,DataGrid的ItemCommand事件会正确触发。当我点击“更新”或“取消”按钮时,什么也不会触发。ItemCommand不会触发,当我显式地将UpdateCommand或CancelCommand放在ascx页面中时,onUpdateCommand或onCancelCommand也不会触发。我不明白为什么单击EditItemTemplate中的按钮时什么都不触发。此外,每个page_init回发都会加载所有内容。任何提示都会很有帮助

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-04 20:11:32

我想通了。我基本上创建了一个项目模板,并添加了3个单独的按钮,而没有使用编辑项。在数据网格itemdatabound函数中,我只是隐藏和显示需要显示的按钮。

票数 1
EN

Stack Overflow用户

发布于 2011-04-02 01:08:11

您是否正在重新绑定网格的PreRender中的事件?

票数 0
EN

Stack Overflow用户

发布于 2011-11-11 06:54:52

我今天也遇到了同样的问题。我注意到它正在调用用于编辑项目的"Header“模板。不知道为什么,但在“switch”之前添加以下内容:

代码语言:javascript
复制
System.Diagnostics.Debug.WriteLine(string.Format("Template: {0}",ItemType.ToString()));

如果您正在使用少量的记录进行测试,那么当您尝试编辑记录时,您应该能够看到它调用了"header“项类型。

我很好奇你是不是也在经历同样的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5516546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档