为什么在DataGrid控件中添加了编辑按钮和命令
但是在网页里面不显示(点击编辑按钮时,保存,和取消按钮不显示)?
即进入不了编辑模式

解决方案 »

  1.   

    你要在DataGrid的editcommand事件中写语句,具体语句查阅msdn
      

  2.   

    到代码里面自己加
    private void InitializeComponent()
    {
        this.DGList.EditCommand+=new DataGridCommandEventHandler(DGList_EditCommand);
        this.DGList.CancelCommand+=new DataGridCommandEventHandler(DGList_CancelCommand);
        this.DGList.UpdateCommand+=new DataGridCommandEventHandler(DGList_UpdateCommand);
        .....原有事件
    }
      

  3.   

    1.在 Visual Studio 的 Designer(设计器)视图中选择 DataGrid,并在 Properties(属性)窗口(闪电图形)中单击 Events(事件)选项卡。双击 CancelCommand 以创建 datagrid_CancelCommand 事件处理程序。返回到 Events(事件)选项卡,并双击 EditCommand 以创建 datagrid_EditCommand 事件处理程序。 
    2.将以下代码插入到这两个事件处理程序中: 
    private void datagrid_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
        datagrid.EditItemIndex = -1;
        ReadRecords();    
    }
    private void datagrid_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
        datagrid.EditItemIndex = e.Item.ItemIndex;
        ReadRecords();
    }你的问题就可以解决了!!!!!说简单点就是要那2个事件
      

  4.   

    如果想让保存可以生效的话,还要再加一个datagrid_UpdateCommand 事件处理程序。 
      

  5.   

    http://www.cnblogs.com/lovecherry/archive/2005/06/19/155831.html#177031
      

  6.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
    {
    e.Item.Attributes.Add("onclick","__doPostBack('"+((LinkButton)e.Item.Cells[4].Controls[0]).ClientID.Replace("__","$_")+"','')");
    }
    if(e.Item.ItemType==ListItemType.EditItem)
    {
    e.Item.Attributes.Add("ondblclick","__doPostBack('"+((LinkButton)e.Item.Cells[5].Controls[0]).ClientID.Replace("__","$_")+"','')");
    for(int i=0;i<4;i++)((TextBox)e.Item.Cells[i].Controls[0]).Attributes.Add("onmouseover","this.select()");
    }
    }
      

  7.   

    还要注意两点:
    1、“属性生成器”里面,要编辑的列只读的勾要去掉,
    2、用到datagrid.EditItemIndex = e.Item.ItemIndex;这个的话,datagrid的属性里面DataKeyField的值要设置为关键值的列
      

  8.   

    非常感谢各位前辈的支持与答复,我想这因该不是代码里面的问题吧?如果我只想在点击DataGrid控件的编辑按钮时,显示"修改"与"保存"按钮那与这些代码无关吧???这些代码可能是要达到修改的目的(个人认为)理论上来说,显示按钮与这些代码好像无关
      

  9.   

    TO : 631799(杭州工人) 在http://www.cnblogs.com/lovecherry/archive/2005/06/19/155831.html#177031
    里面的例子里,我没有看到DataGrid调用哪个事件,请问实现原理是什么?
    <asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False" CellSpacing="1" BorderWidth="0px" CellPadding="5" CssClass="border" DataKeyField="EmployeeID">
      
    下面两句才是关键吧!但是我没有看到响应命令呢!              
    <asp:ButtonColumn ButtonType="LinkButton" CommandName="edit" Text="edit" Visible="False"></asp:ButtonColumn>
    <asp:ButtonColumn ButtonType="LinkButton" CommandName="update" Text="update" Visible="False"></asp:ButtonColumn>