Изменение стиля строки Gridview при нажатии на поле гиперссылки - PullRequest
0 голосов
/ 14 апреля 2009

У меня есть веб-приложение ASP.NET (2.0 с использованием C #), в котором у меня есть сетка на странице (My_Page.aspx). GridView получает свои данные из базы данных Oracle. У меня есть поле гиперссылки в виде сетки, которое при щелчке переходит обратно на ту же страницу, но с подробной информацией о выбранном элементе (используя QueryString).

<asp:HyperLinkField DataNavigateUrlFields="ID" 
                    DataNavigateUrlFormatString="My_Page.aspx?id={0}"
                    DataTextField="NAME" 
                    HeaderText="Item1" 
                    SortExpression="NAME" />

Я хотел знать, как изменить стиль строки, в которой я щелкнул гиперссылку.

Есть идеи?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 14 апреля 2009

Во-первых, HyperLink (поле) обычно не отправляет обратно, но в вашем случае запрашивает ту же страницу с новыми параметрами.

Чтобы установить класс CSS для строки GridView, используйте событие RowCreated, чтобы сделать что-то вроде этого:

protected void GridView_RowCreated(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
        if (e.Row.DataItem.ToString() == Request["id"])
            e.Row.CssClass = "highlighted-css-class";
}
0 голосов
/ 24 марта 2011

Моя ситуация:

<asp:GridView ID="gvProjects" runat="server">
<SelectedRowStyle CssClass="current" />
<Columns>
<asp:TemplateField>
    <ItemTemplate>
        <asp:LinkButton ID="cmdShowProject" runat="server" 
           OnCommand="cmdShowProject_Command"
           CssClass="show-project" CommandName="select"
    </ItemTemplate>
</asp:TemplateField>

SelectedRowStyle должен быть установлен (либо через отдельные свойства, либо через CssClass). CommandName должно быть "выбрать" для изменения стиля строки. GridView находится в панели обновления.

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

Я предлагаю вам использовать Javascript для достижения этой цели. Поскольку вы не можете работать с кнопкой ссылки напрямую, Вы должны перейти в DOM к родительскому элементу TR (TableRow) и установить его свойство класса.

Сначала добавьте атрибут onclick (если это невозможно для HyperLinkField, попробуйте простой HyperLink или LinkButton)

Передать элемент управления в качестве параметра функции Javascript

onclick="selectRow(this)"


function selectRow(hyperlink) { ... }

Я дам вам понять, как перемещаться по DOM, чтобы найти родительский TR.

Несколько ссылок:

domtables

domstructure

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...