gridView绑定好了数据··
    如:学生编号,姓名,年龄,性别
            1    LILY  25    女     编辑
            2    LACY  20    女     编辑
            3    COCO  20    女     编辑
           ····        这里的编辑列为Visual Studio自带的怎样变成如下效果:
     
     如:学生编号,姓名,年龄,性别
             1    LILY  25    女     
             2    LACY  20    女     
             3    COCO  20    女    
            ····
            n     YOU   20    女    编辑    就是只把最后一列的那个  编辑  显示出来怎样实现????如果把ShowEditButton设置为True的话,就会都显示,False则都不会显示了。
            
           很需要这种效果,谢谢帮忙··不管什么方法都可以

解决方案 »

  1.   

    将最后一行的设置为true,不就行了吗。
      

  2.   


    <asp:CommandField HeaderText="编辑" ShowEditButton="True">
            <ItemStyle HorizontalAlign="Center"></ItemStyle>
            </asp:CommandField >
      

  3.   


     protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridView1.EditIndex = e.NewEditIndex;
            BindGridView();
        }
        protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            role.ID =int.Parse( GridView1.DataKeys[e.RowIndex].Value.ToString());
            role.Name = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim();
            role.Decription = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim();
            role.Update();
            BindGridView();
        }
        protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            GridView1.EditIndex = -1;
            BindGridView();
        }
      

  4.   

    这样...你首先把GridView的ShowFooter设置为"True",然后在DataBound事件中写如下:
       if(e.Row.RowType = DataControlRowType.Footer){
                    e.Row.Cells(最后一列的索引号).Text = "编辑";//索引号从零开始
    }
    你觉得怎么样呢.可以的话给分.谢谢合作.
                              
      

  5.   

    你的GridView分页么?如果分页是最后一页最后一行的编辑按钮可用?GridView的数据源是SqlDataSource还是自己手写的DataSet之类?
      

  6.   

    GridView的数据源是一个DataTable,不用实现分页的效果··    我是想把前面所有行的编辑按钮都影藏,或者不显示··而只显示最后一行的编辑按钮,而且可以对最后一行进行编辑。
        谢谢··
       
     
      

  7.   

    gridview不是有rowcount吗,找到最后的行号,不就可以了
      

  8.   


    <asp:GridView ID="GridView1" ...>
        <Columns>
            <asp:BoundField DataField="CategoryID" HeaderText="CategoryID" ReadOnly="true"/>
            <asp:BoundField DataField="CategoryName" HeaderText="CategoryName"/>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:Button ID="btnEdit" runat="server" Text="编辑" CommandName="Edit" Visible='<%# ((GridViewRow)Container).RowIndex == yourDataTable.Rows.Count - 1 %>'/>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
      

  9.   

    最后一行就显示控件啊
    不是最后一行就隐藏啊
    rowcreate
      

  10.   

    这个按钮的CommandName="Edit"和自带的功能完全一样
      

  11.   


    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="CategoryID" >
        <Columns>
            <asp:BoundField DataField="CategoryID" HeaderText="CategoryID" ReadOnly="true"/>
            <asp:BoundField DataField="CategoryName" HeaderText="CategoryName"/>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:Button ID="btnEdit" runat="server" Text="编辑" CommandName="Edit" Visible='<%# ((GridViewRow)Container).RowIndex == dt.Rows.Count - 1 %>'/>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>protected DataTable dt;private DataTable BindGrid()
    {
        SqlConnection cn = new SqlConnection(@"server=.\SQLExpress;uid=sa;pwd=;database=Northwind");
        string strSQL = "select CategoryID,CategoryName from Categories";
        SqlDataAdapter da = new SqlDataAdapter(strSQL, cn);
        dt = new DataTable();
        cn.Open();
        da.Fill(dt);
        cn.Close();
        return dt;
    }private void Page_Load(object sender, System.EventArgs e)
    {
        if (!IsPostBack)
        {
            GridView1.DataSource = BindGrid();
            GridView1.DataBind();
        }
    }
      

  12.   

    如果像实现编辑和取消的功能请如下操作(未完成更新)<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="CategoryID" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowEditing="GridView1_RowEditing" >
        <Columns>
            <asp:BoundField DataField="CategoryID" HeaderText="CategoryID" ReadOnly="true"/>
            <asp:BoundField DataField="CategoryName" HeaderText="CategoryName"/>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:Button ID="btnEdit" runat="server" Text="编辑" CommandName="Edit" Visible='<%# ((GridViewRow)Container).RowIndex == dt.Rows.Count - 1 %>'/>
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:Button ID="btnUpdate" runat="server" Text="更新" CommandName="Update" />
                    <asp:Button ID="btnCancel" runat="server" Text="取消" CommandName="Cancel" />
                </EditItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>public partial class _Default : System.Web.UI.Page 
    {
        protected DataTable dt;    private void BindGrid()
        {
            SqlConnection cn = new SqlConnection(@"server=.\SQLExpress;uid=sa;pwd=;database=Northwind");
            string strSQL = "select CategoryID,CategoryName from Categories";
            SqlDataAdapter da = new SqlDataAdapter(strSQL, cn);
            dt = new DataTable();
            cn.Open();
            da.Fill(dt);
            cn.Close();
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }    private void Page_Load(object sender, System.EventArgs e)
        {
            if (!IsPostBack)
            {
                BindGrid();
            }
        }
        protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridView1.EditIndex = e.NewEditIndex;
            BindGrid();
        }
        protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            GridView1.EditIndex = -1;
            BindGrid();
        }
    }
      

  13.   

    哦,呵呵,谢谢大家,还有amanday 
               恩,基本上可以实现了,就是那个跟新和取消的显示想和 VS自带的一样。
    我想这个我自己应该可以解决了。
           
      

  14.   

    如果你学了一段时间,你就会发现TemplateField有多重要了
      

  15.   

    不能触发事件的话..你可以这样,转到另外一个页面去编辑,你觉得可以吗?
       if(e.Row.RowType = DataControlRowType.Footer){  
                    e.Row.Cells(最后一列的索引号).Text = "<a href="编辑页面.aspx?id="+e.CommandArgument.ToString()+">编辑</a>";//索引号从零开始