Преобразование простого текста в gridview в HTML-ссылки - PullRequest
0 голосов
/ 25 января 2012

У меня есть следующий код, который создает список с включенной нумерацией страниц:

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

Можно ли скрыть идентификатор и преобразовать текст в ссылку, одновременно применяя идентификатор к ссылке?

т.е. если первая строка из базы данных из текстового столбца содержит «документ один» и идентификатор равен 1, в данный момент он будет отображать идентификатор как 1 и текст как «документ один» в виде сетки. как я могу изменить это на что-то вроде <a href="http://mysite/document.aspx?id=1">document one</a>?

Ответы [ 2 ]

2 голосов
/ 25 января 2012

Вместо установки AutoGenerateColumns = True вам необходимо указать столбцы и использовать HyperlinkField.

Посмотрите на последний пример в этой статье , где они используют атрибуты datanavigateurlfields и datanavigateurlformatstring для генерацииссылка с параметрами из источника данных.

0 голосов
/ 25 января 2012

Попробуйте использовать событие RowDataBound для форматирования столбцов.Это дает вам большой контроль над тем, что входит в каждую клетку.Вы можете создать пустые элементы управления (простую гиперссылку) в ItemTemplate, а затем выполнить соответствующее связывание / форматирование данных в событии RowDataBound.

Сначала это кажется немного пугающим, но как только вы его освоите,это даст вам много возможностей для простой настройки вывода GridView.

...