-1

我想创建一个包含两列的表格格式,其中每一行都有一个 ProductTitle 及其对应的 URL。

我正在使用以下代码以表格格式提供信息。我在第二列中显示整个锚标记。

但我只想将文本显示为第二列中的链接。单击它应该打开 URL 页面。

DataTable dt = new DataTable();

dt.Columns.Add("ProductTitle");
dt.Columns.Add("Link");

DataRow dr = dt.NewRow();
dr["ProductTitle"] = "GOOGLE";
dr["Link"] = "<" + "a href=\"" + "http://www.google.com" + "\">Google" + "</a>";
dt.Rows.Add(dr);

Gridview1.DataSource = dt;
Gridview1.DataBind();

任何人都可以建议。

4

3 回答 3

1

试试这个

dr["Link"] = "<a href='http://www.google.com'>Google</a>";

我试过

Label1.Text = "<a href='http://www.google.com'>Google</a>";

有用。

第二次尝试:

除了 .NET 类型(如 string、int .etc)之外,我们无法保存任何其他内容,因此请尝试像这样的 asp:HyperLink

<ItemTemplate>
 <asp:HyperLink ID="HyperLink1" runat="server" Text='<%# Eval("ProductTitle")%>' NavigateUrl='<%# Eval("Link") %>'></asp:HyperLink>
</ItemTemplate>

dr["ProductTitle"] = "Goole";
dr["Link"] = "http://www.google.com";
于 2012-11-29T08:03:39.777 回答
1

.aspx您可以按如下方式修改文件:

    ...
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
        <Columns>
            <asp:BoundField DataField="ProductTitle" HeaderText="Product Title" />
            <asp:BoundField DataField="Link" HtmlEncode="false" HeaderText="Link" />
        </Columns>
    </asp:GridView>
    ...

因此,您应该通过设置AutoGenerateColumns="false"和格式化Columns. GridView请注意此处链接渲染的关键元素,即HtmlEncode="false"属性。您还可以在代码隐藏文件中设置所有内容:

    GridView1.AutoGenerateColumns = false;

    var productTitleField=new BoundField();
    productTitleField.DataField="ProductTitle";
    productTitleField.HeaderText="Product Title";

    var linkField=new BoundField();
    linkField.DataField="Link";
    linkField.HeaderText="Link";
    linkField.HtmlEncode=false;

    GridView1.Columns.Add(productTitleField);
    GridView1.Columns.Add(linkField);
于 2012-11-29T08:09:32.587 回答
0

实际上有一个专门为您想要做的事情而设计的专栏,它就是HyperLinkField专栏。

<asp:HyperLinkField 
            HeaderText="Header"
            DataTextField="LinkText"
            DataNavigateUrlFields="LinkURL" 
            DataNavigateUrlFormatString="http://google.com/q={0}" />

然后,您可以确保您的数据源具有链接文本和导航 url 字段的适当列。

如果您有固定文本或固定 url 以使用TextNavigateURL属性而不是 Data... 对应项,则可以对其进行配置,并且您可以根据需要使用或不使用格式字符串。

于 2012-12-04T18:47:18.183 回答