GridView在.Net中出现问题

时间:2010-12-24 18:37:04

标签: c# asp.net

我认为这可能很容易...... 我有一个Gridview,使用此查询绑定到dataSource:
从用户中选择用户ID,姓名,电话 我需要将Name单元格的内容更改为链接,如下所示:
<a href="http://www.domain.com/page.aspx?userid=12345">User's Name</a>
所以OnRowDataBound我这样做:

e.Row.Cells[1].Text = "<a href=\"http://www.domain.com/page.aspx?userid=\" + e.Row.Cell[0].Text + "\">" + e.Row.Cells[1].Text + "</a>"; 

这一切都很好。我的问题是我不想在Gridview中显示UserId列,但当我将它(asp属性或服务器端)Visible="false"归因于BoundField UserId时,我无法捕获它的构建值名称单元格。

Thanx求助

3 个答案:

答案 0 :(得分:4)

让gridView使用模板项而不是简单的grivdiew列。

<asp:TemplateField HeaderText="FirstName" SortExpression="FirstName"> 
  <EditItemTemplate> 
      <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("FirstName")%>'>
      </asp:TextBox> 
      </EditItemTemplate> 
   <ItemTemplate> 
      <asp:Label ID="Label1" runat="server" Text='<%# Bind("FirstName") %>'>
     </asp:Label> 
 </ItemTemplate> 
</asp:TemplateField>

你可以找到一个很好的介绍Here

答案 1 :(得分:0)

同意Jani,这应该使用模板字段完成。如果您确实需要以其他方式执行此操作,请参阅Can data be kept in a dynamically bound GridView's invisible fields?

答案 2 :(得分:0)

您可以设置onrowdatabound事件的可见性