我做了一个自定义控件,里面放了一个DataGrid,DataGrid内设一模板列用于编辑(想让它一开始显示编辑,点编辑后显示修改,退出)
故在HTML处有如下代码<asp:TemplateColumn> <ItemTemplate> <asp:ImageButton id="ib_Edit" runat="server" ImageUrl="img/edit.gif" CommandName="Edit" AlternateText="Change Number">
</asp:ImageButton> </ItemTemplate> <EditItemTemplate> <asp:ImageButton id="ib_Save" runat="server" ImageUrl="img/save.gif" CommandName="update"></asp:ImageButton>&nbsp; <asp:ImageButton id="ib_Cancel" runat="server" ImageUrl="img/upcancel.gif" CommandName="cancel"></asp:ImageButton>
</EditItemTemplate> </asp:TemplateColumn>然后在DataGrid事件处写上:
public void dataGrid_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
dataGrid.EditItemIndex=-1;
BindGrid();
}public void dataGrid_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
///此处省略
}
按理说,现在当我点击编辑的时候应该会先响应EdiT事件,然后将显示“修改,取消”的,
可是我每次点完编辑后都不会出现修改及取消,事件也只响应dataGrid_EditCommand,请问这是为什么?
我看了一份别人的代码都是可以的,内容也是一样的,请问如何修改?

解决方案 »

  1.   

    参考
    http://singlepine.cnblogs.com/articles/266538.html
      

  2.   


    然后在DataGrid事件处写上:
    public void dataGrid_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    dataGrid.EditItemIndex=e.Item.ItemIndex;
    BindGrid();
    }
      

  3.   

    如楼上:
    public void dataGrid_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    dataGrid.EditItemIndex=e.Item.ItemIndex;
    BindGrid();
    }public void dataGrid_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    dataGrid.EditItemIndex=-1;
    BindGrid();
    }