C# 隐藏gridview中最后一行的按钮

C# 隐藏gridview中最后一行的按钮,c#,asp.net,.net,gridview,C#,Asp.net,.net,Gridview,我正在使用下面的代码隐藏/编辑和删除gridview中的最后一行 当我使用页面索引时,按钮会隐藏在每一页的最后一行吗 protected void Page_PreRender(object sender, EventArgs e) { var lastRow = gvDetails.Rows[gvDetails.Rows.Count - 1]; lastRow.FindControl("btnEdit").Visible = false; lastRow.FindC

我正在使用下面的代码隐藏/编辑和删除
gridview
中的最后一行

当我使用页面索引时,按钮会隐藏在每一页的最后一行吗

 protected void Page_PreRender(object sender, EventArgs e)
 {
    var lastRow = gvDetails.Rows[gvDetails.Rows.Count - 1];
    lastRow.FindControl("btnEdit").Visible = false;
    lastRow.FindControl("btnDelete").Visible = false;
 } 
有什么克服这个问题的建议吗

另外,我使用下面的方法绑定网格并添加一个新的datarow,该datarow具有列的总和。现在,如何将此datarow添加为gridview的第一行

public void LoadData()
{
    DataTable dtDetails = DetailsDataRepository.GetDetails();
    BindDetailsGrid(dtDetails);
    DataTable dt = DetailsDataRepository.GetSum();
    DataRow dr = dtDetails.NewRow();
    dr["Total_Amount"] = Convert.ToDecimal(dt.Rows[0]["Total_Amount"].ToString().Substring(1)).ToString("C0");
    dr["Monthly_Amount"] = Convert.ToDecimal(dt.Rows[0]["Monthly_Amount"].ToString().Substring(1)).ToString("C0");
    dtDetails.Rows.InsertAt(dr,0);
    gvDetails.DataSource = dtDetails;
    gvDetails.DataBind();
    if (gvDetails.PageIndex == 0)
    {
        var lastRow = gvDetails.Rows[0];
        lastRow.FindControl("btnEdit").Visible = false;
        lastRow.FindControl("btnDelete").Visible = false;
        lastRow.FindControl("lblComments").Visible = false;
        lastRow.Height = 35;
        lastRow.Font.Size = 11;
        lastRow.Font.Bold = true;
    }        
}
页面索引:

protected void gvDetails_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    gvDetails.PageIndex = e.NewPageIndex;
    BindGrid();
    if (gvDetails.PageIndex == 0)
    {
        var lastRow = gvODetails.Rows[0];
        lastRow.FindControl("btnEdit").Visible = false;
        lastRow.FindControl("btnDelete").Visible = false;
        lastRow.FindControl("lblComments").Visible = false;
        lastRow.Height = 35;
        lastRow.Font.Size = 11;
        lastRow.Font.Bold = true;
    }
}
public void LoadData()
{
    DataTable dtDetails = DetailsDataRepository.GetDetails();
    BindDetailsGrid(dtDetails);
    DataTable dt = DetailsDataRepository.GetSum();
    DataRow dr = dtDetails.NewRow();
    dr["Total_Amount"] = Convert.ToDecimal(dt.Rows[0]["Total_Amount"].ToString().Substring(1)).ToString("C0");
    dr["Monthly_Amount"] = Convert.ToDecimal(dt.Rows[0]["Monthly_Amount"].ToString().Substring(1)).ToString("C0");
    dtDetails.Rows.InsertAt(dr, 0);
    gvDetails.DataSource = dtDetails;
    gvDetails.DataBind();
    if (gvDetails.PageIndex == 0)
    {
        var lastRow = gvDetails.Rows[0];
        lastRow.FindControl("btnEdit").Visible = false;
        lastRow.FindControl("btnDelete").Visible = false;
        lastRow.FindControl("lblComments").Visible = false;
        lastRow.Height = 35;
        lastRow.Font.Size = 11;
        lastRow.Font.Bold = true;
        lastRow.BackColor = System.Drawing.Color.LightGray;
    }  
}
protected void gvDetails_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
 gvDetails.PageIndex = e.NewPageIndex;
 BindGrid();
 if (gvDetails.PageIndex == 0)
  {
    var lastRow = gvDetails.Rows[0];
    lastRow.FindControl("btnEdit").Visible = false;
    lastRow.FindControl("btnDelete").Visible = false;
    lastRow.FindControl("lblComments").Visible = false;
    lastRow.Height = 35;
    lastRow.Font.Size = 11;
    lastRow.Font.Bold = true;
  }
}
更新:

protected void gvDetails_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    gvDetails.PageIndex = e.NewPageIndex;
    BindGrid();
    if (gvDetails.PageIndex == 0)
    {
        var lastRow = gvODetails.Rows[0];
        lastRow.FindControl("btnEdit").Visible = false;
        lastRow.FindControl("btnDelete").Visible = false;
        lastRow.FindControl("lblComments").Visible = false;
        lastRow.Height = 35;
        lastRow.Font.Size = 11;
        lastRow.Font.Bold = true;
    }
}
public void LoadData()
{
    DataTable dtDetails = DetailsDataRepository.GetDetails();
    BindDetailsGrid(dtDetails);
    DataTable dt = DetailsDataRepository.GetSum();
    DataRow dr = dtDetails.NewRow();
    dr["Total_Amount"] = Convert.ToDecimal(dt.Rows[0]["Total_Amount"].ToString().Substring(1)).ToString("C0");
    dr["Monthly_Amount"] = Convert.ToDecimal(dt.Rows[0]["Monthly_Amount"].ToString().Substring(1)).ToString("C0");
    dtDetails.Rows.InsertAt(dr, 0);
    gvDetails.DataSource = dtDetails;
    gvDetails.DataBind();
    if (gvDetails.PageIndex == 0)
    {
        var lastRow = gvDetails.Rows[0];
        lastRow.FindControl("btnEdit").Visible = false;
        lastRow.FindControl("btnDelete").Visible = false;
        lastRow.FindControl("lblComments").Visible = false;
        lastRow.Height = 35;
        lastRow.Font.Size = 11;
        lastRow.Font.Bold = true;
        lastRow.BackColor = System.Drawing.Color.LightGray;
    }  
}
protected void gvDetails_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
 gvDetails.PageIndex = e.NewPageIndex;
 BindGrid();
 if (gvDetails.PageIndex == 0)
  {
    var lastRow = gvDetails.Rows[0];
    lastRow.FindControl("btnEdit").Visible = false;
    lastRow.FindControl("btnDelete").Visible = false;
    lastRow.FindControl("lblComments").Visible = false;
    lastRow.Height = 35;
    lastRow.Font.Size = 11;
    lastRow.Font.Bold = true;
  }
}
页面索引:

protected void gvDetails_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    gvDetails.PageIndex = e.NewPageIndex;
    BindGrid();
    if (gvDetails.PageIndex == 0)
    {
        var lastRow = gvODetails.Rows[0];
        lastRow.FindControl("btnEdit").Visible = false;
        lastRow.FindControl("btnDelete").Visible = false;
        lastRow.FindControl("lblComments").Visible = false;
        lastRow.Height = 35;
        lastRow.Font.Size = 11;
        lastRow.Font.Bold = true;
    }
}
public void LoadData()
{
    DataTable dtDetails = DetailsDataRepository.GetDetails();
    BindDetailsGrid(dtDetails);
    DataTable dt = DetailsDataRepository.GetSum();
    DataRow dr = dtDetails.NewRow();
    dr["Total_Amount"] = Convert.ToDecimal(dt.Rows[0]["Total_Amount"].ToString().Substring(1)).ToString("C0");
    dr["Monthly_Amount"] = Convert.ToDecimal(dt.Rows[0]["Monthly_Amount"].ToString().Substring(1)).ToString("C0");
    dtDetails.Rows.InsertAt(dr, 0);
    gvDetails.DataSource = dtDetails;
    gvDetails.DataBind();
    if (gvDetails.PageIndex == 0)
    {
        var lastRow = gvDetails.Rows[0];
        lastRow.FindControl("btnEdit").Visible = false;
        lastRow.FindControl("btnDelete").Visible = false;
        lastRow.FindControl("lblComments").Visible = false;
        lastRow.Height = 35;
        lastRow.Font.Size = 11;
        lastRow.Font.Bold = true;
        lastRow.BackColor = System.Drawing.Color.LightGray;
    }  
}
protected void gvDetails_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
 gvDetails.PageIndex = e.NewPageIndex;
 BindGrid();
 if (gvDetails.PageIndex == 0)
  {
    var lastRow = gvDetails.Rows[0];
    lastRow.FindControl("btnEdit").Visible = false;
    lastRow.FindControl("btnDelete").Visible = false;
    lastRow.FindControl("lblComments").Visible = false;
    lastRow.Height = 35;
    lastRow.Font.Size = 11;
    lastRow.Font.Bold = true;
  }
}
试试这个

if(gvOBMDetails.PageCount == 1)//Updated
{
    var lastRow = gvOBMDetails.Rows[gvOBMDetails.Rows.Count - 1];
    lastRow.FindControl("btnEdit").Visible = false;
    lastRow.FindControl("btnDelete").Visible = false;
}
else if(gvOBMDetails.PageIndex == gvOBMDetails.PageCount -1)
{
    var lastRow = gvOBMDetails.Rows[gvOBMDetails.Rows.Count - 1];
    lastRow.FindControl("btnEdit").Visible = false;
    lastRow.FindControl("btnDelete").Visible = false;
}

检查不同网格中的最后一行
gvOBMDetails.Rows[gvDetails.Rows.Count-1]
gvDetails.Rows.Count
将显示当前可见行数。这可以正常工作。我在另一个页面中有一个gridview,其中一列是一个链接按钮,因此当我单击任何值时,它将导航到此页面。现在我可以看到最后一行高亮显示,有什么解决方案吗?@Vicky在绑定gridview或在页面索引更改事件后立即添加上述代码。我已在页面预渲染事件中添加了上述代码。因此,单击其他页面中的gridview列将进入此页面。是否在
page\u PreRender
事件中绑定数据?在页面加载事件中不绑定数据。