2014-01-07 107 views
0

我有一个gridview用于显示我的MS-SQL数据。我使用autogenerateselectbutton属性来选择每一行,以便我可以显示另一个Asp.net面板。但是现在我不想在GridView上显示“选择”列。如何隐藏它,但仍然能够选择Gridview的行。在Gridview上隐藏Autogenerateselectbutton

我试图用它来隐藏:

gv_gridname.Columns[0].Visible = false; 

我加了Autogenerateselectbutton在.aspx页面上:

autogenerateselectbutton="true" 

但由于它不计数的“选择”列失败作为GridView中的一列。 那么如何隐藏它并能够使用它来选择我的行。请帮忙

在此先感谢。

回答

0

你应该试试这个:

在隐藏文件的代码,

int indexOfColumn = 0; //Note : Index will start with 0 so set this value accordingly 
protected void gv_gridname_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.Cells.Count > indexOfColumn) 
    { 
     e.Row.Cells[indexOfColumn].Visible = false; 
    } 
} 

protected void OnRowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     e.Row.Attributes["onclick"] = Page.ClientScript.GetPostBackClientHyperlink(gv_gridname, "Select$" + e.Row.RowIndex); 
     e.Row.ToolTip = "Click to select this row."; 
    } 
} 

protected void OnSelectedIndexChanged(object sender, EventArgs e) 
{ 
    foreach (GridViewRow row in gv_gridname.Rows) 
    { 
     if (row.RowIndex == gv_gridname.SelectedIndex) 
     { 
      row.BackColor = ColorTranslator.FromHtml("#A1DCF2"); 
      row.ToolTip = string.Empty; 
     } 
     else 
     { 
      row.BackColor = ColorTranslator.FromHtml("#FFFFFF"); 
      row.ToolTip = "Click to select this row."; 
     } 
    } 
} 

在.aspx页面做,

<asp:GridView ID="gv_gridname" runat="server" 
      OnRowDataBound="gv_gridname_RowDataBound" 
      OnRowDataBound="OnRowDataBound" 
      OnSelectedIndexChanged="OnSelectedIndexChanged"> 

jQuery脚本添加在你的aspx页面:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<script type="text/javascript"> 
     $(function() { 
      $("[id*=gv_gridname] td").hover(function() { 
       $("td", $(this).closest("tr")).addClass("hover_row"); 
      }, function() { 
       $("td", $(this).closest("tr")).removeClass("hover_row"); 
      }); 
     }); 
    </script> 

Add css在你的aspx页面:

<style type="text/css"> 
     body 
     { 
      font-family: Arial; 
      font-size: 10pt; 
     } 
     td 
     { 
      cursor: pointer; 
     } 
     .hover_row 
     { 
      background-color: #FFFFBF; 
     } 
    </style> 
+0

这就隐藏了列的真正......它和我上面做的一样。但是你无法选择该行。这对我所做的事实际上是一个很长的路......但执行相同的任务。 –

+0

我认为这段代码会隐藏你所需要的列,通过你的代码是不可能的。 –

+0

你有没有试过这段代码? –