我认为这可能很容易......
我有一个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求助
答案 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事件的可见性