Удаление столбца сетки - PullRequest
       6

Удаление столбца сетки

0 голосов
/ 07 апреля 2009

У меня есть веб-приложение, над которым я работаю (ASP.NET 2.0 C #). В нем у меня есть GridView, источником данных которого является база данных Oracle. Я получаю данные в виде сетки в моем коде и не устанавливаю источник данных напрямую.

Я хотел создать поле гиперссылки (ИМЯ), которое приведет меня на страницу сведений о конкретной записи. В конечном итоге происходит то, что он создает поле гиперссылки, а также обычное поле, полученное из источника данных, что мне не нужно. Если я удаляю поле из оператора SELECT, выдается сообщение об ошибке типа «ИМЯ» не найдено в источнике данных.

Как я могу исключить обычное поле и получить вместо него поле гиперссылки? Я пробовал Gridview.Columns.Remove(columnlocation), но это не сработает, потому что столбцы там не существуют изначально.

Пожалуйста, помогите Спасибо.

Ответы [ 2 ]

4 голосов
/ 07 апреля 2009

Вместо удаления столбцов отключите свойство AutoGenerateColumns вида сетки и установите столбец гиперссылки вручную следующим образом:

<asp:gridview id="GridView1" 
    autogeneratecolumns="false"
    runat="server">                
        <asp:HyperLinkField DataNavigateUrlFields="UserID" 
            DataNavigateUrlFormatString="UserDetails.aspx?id={0}"
            DataTextField="UserName" />
</asp:gridview>
1 голос
/ 07 апреля 2009

Звучит так, как будто у вас Свойство AutoGenerateColumns установлено на TRUE в вашей сетке. Это означает, что для КАЖДОГО столбца, возвращаемого вами по запросу, создается столбец.

Если вы хотите иметь несколько пользовательских столбцов, вы должны установить AutoGenerateColumns = "false" и добавить все столбцы в GirdView как asp: BoundField и ваш столбец гиперссылки как asp: TemplateField

Дайте мне знать, если я не в порядке с этим

вот код:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
    <Columns>
        <asp:BoundField DataField="Name" />
        <asp:BoundField DataField="Whatever" />
        <asp:TemplateField>
        <ItemTemplate>
        <a href='<%# Eval("UserId", "URL_TO_USER?userId={0}") %>'>Details</a>
        </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...