页面记载一个gridview1第一列是一个日期,点击每个日期都能打开新的页面去查询这个日期的详细信息,这点已经实现,在这个gridview1的最后一行是汇总(汇总是在sqlserver那边实现的),最后一行的日期字段是 sum这样就有了一个问题,最后一行的sum也成了链接,能不能在页面绑定的时候 
把sum的这一行的链接去掉,让用户无法点击这个链接
   protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
        {            if (GridView1.Rows[i].Cells[0].Text.ToString().Trim() == "sum")
            {
                GridView1.Rows[i].Cells[0].????这里应该怎么写????
            }
          
        }
    }

解决方案 »

  1.   

     GridView1.Rows[i].Cells[0].Enabled=false;
      

  2.   

    恩 简单说 就是数据库读出一个表 通过gridview显示出来,第一列是 是hyperlinkfield点击每行第一列都能通过第一列的日期,新打开一个页面,但是最后一行第一列,不是日期,而是一个字符串“sum”,所以 有什么办法可以使最后一行第一列的sum 不成为 超级链接,用户无法点击 
      

  3.   


     <%if(*****=="sum")
                              { %>
                              <a href="">********</a>
                              <%}else{ %>
                             空
                              <%} %>
      

  4.   

    up其实  那个汇总Sum可以直接用<a href='<%Eval("数据")>'>汇总</a>
       或者用LinkButton 的CommandArgument 和CommandName在GridView的RowCommand中操作。。
     额、就这样吧。
      

  5.   

    gridview1的前台代码贴出来看一下
      

  6.   


    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
             BackColor="White" BorderColor="White" BorderStyle="Ridge" BorderWidth="2px" 
             CellPadding="3" CellSpacing="1" GridLines="None" 
             onrowdatabound="GridView1_RowDataBound" >
            <RowStyle BackColor="#DEDFDE" ForeColor="Black" />
            <Columns>
                <asp:HyperLinkField DataNavigateUrlFields="Test_Datetime" 
                        DataNavigateUrlFormatString="TRXdayquery.aspx?date={0}" DataTextField="Test_Datetime" 
                        HeaderText="测试时间" Target="_blank" />
                <asp:BoundField DataField="tn" HeaderText="测试数" />
                <asp:BoundField DataField="pn" HeaderText="通过数" />
                <asp:BoundField DataField="Rate" HeaderText="一次测试通过率%" />
                
            </Columns>
            <FooterStyle BackColor="#C6C3C6" ForeColor="Black" />
            <PagerStyle BackColor="#C6C3C6" ForeColor="Black" HorizontalAlign="Right" />
            <SelectedRowStyle BackColor="#9471DE" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#E7E7FF" />
        </asp:GridView>
      

  7.   

    Enabled=false; 怎么我的可以
      

  8.   


    if (GridView1.Rows[i].Cells[0].Text.ToString().Trim() == "sum")这句话执行吗?
    Enabled=false;这样写,我这里好用啊
      

  9.   


    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
            {
             if (i==GridView1.Rows.Count - 1)              
             GridView1.Rows[i].Cells[0].Enabled = false;
            }
        }
    这些写 我只是想 去掉最后一行第一列的 链接格式,但是 实际效果是 把第一列全部灰掉了怎么改呢? 多谢帮助啊
      

  10.   

    顶一下protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
          GridView1.Rows[GridView1.Rows.Count].Enabled = false;
    }就是想把最后一行的属性改为false
    这样改 报错 说超出index大小  怎么改一下呢?
      

  11.   

    如果一定要这样做的话,用innerhtml试一试。
    建议:在数据库中的到这个求和的结果用ExecuteScalar返回,在输出,效果好多了
      

  12.   


    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            int i = GridView1.Rows.Count - 1;
            GridView1.Rows[i].Enabled = false;
             
        }谢谢LS的建议,但是就想搞明白为这么我这么写无法运行呢,为什么这么写要提示我 index超出范围