将gridview中的纯文本转换为html链接

时间:2012-01-25 15:48:58

标签: c# .net-3.5 asp.net-3.5

我有以下代码,用于创建启用了分页的列表:

<%@ 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>

2 个答案:

答案 0 :(得分:2)

您需要指定列并使用HyperlinkField,而不是设置AutoGenerateColumns = True。

查看此article中的最后一个示例,他们使用datanavigateurlfields和datanavigateurlformatstring属性来生成带有DataSource参数的链接。

答案 1 :(得分:0)

尝试使用RowDataBound事件来设置列的格式。这使您可以很好地控制每个单元格的内容。您可以在ItemTemplate中创建空控件(一个简单的超链接),然后在RowDataBound事件中执行相应的数据绑定/格式化。

一开始看起来有点令人生畏,但是一旦掌握了它,就会给你很大的空间来轻松定制你的GridView输出。