我有以下代码,用于创建启用了分页的列表:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:gridview id="CustomersGridView"
datasourceid="CustomersSource"
autogeneratecolumns="true"
emptydatatext="No data available."
allowpaging="true"
runat="server">
<pagersettings mode="Numeric"
position="Bottom"
pagebuttoncount="10"/>
<pagerstyle backcolor="LightBlue"
height="30px"
verticalalign="Bottom"
horizontalalign="Left"/>
</asp:gridview>
<asp:sqldatasource id="CustomersSource"
selectcommand="select id, text from table1"
connectionstring="connection string here"
runat="server"/>
</div>
</form>
</body>
</html>
是否可以隐藏ID,并将文本转换为链接,同时将ID应用于链接?
即。如果来自text列的数据库中的第一行包含“document one”且id为1,则此时它将在gridview中将id显示为1并将文本显示为“document one”。如何将其更改为<a href="http://mysite/document.aspx?id=1">document one</a>
?
答案 0 :(得分:2)
您需要指定列并使用HyperlinkField,而不是设置AutoGenerateColumns = True。
查看此article中的最后一个示例,他们使用datanavigateurlfields和datanavigateurlformatstring属性来生成带有DataSource参数的链接。
答案 1 :(得分:0)
尝试使用RowDataBound事件来设置列的格式。这使您可以很好地控制每个单元格的内容。您可以在ItemTemplate中创建空控件(一个简单的超链接),然后在RowDataBound事件中执行相应的数据绑定/格式化。
一开始看起来有点令人生畏,但是一旦掌握了它,就会给你很大的空间来轻松定制你的GridView输出。