2009-04-14 95 views
0

我有一個ASP.NET(2.0使用C#)Web應用程序,其中我有一個頁面上的GridView(My_Page.aspx)。 GridView從Oracle數據庫中獲取數據。我在gridview中有一個Hyperlinkfield,當它被點擊時,回發到相同的頁面,但有點擊項目的詳細信息(使用QueryString)。更改Gridview行樣式onclicking超鏈接字段

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

我想知道如何改變我點擊超鏈接的行的樣式。

任何想法?

謝謝。

回答

3

首先,超鏈接(字段)通常不會回發,但在您的情況下,請求具有新參數的同一頁面。

要設置一個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

我建議你使用Javascript功能來實現這一目標。 由於您無法直接使用鏈接按鈕,因此您必須在DOM中導航到父TR(TableRow)元素並設置其類屬性。

首先,添加onclick屬性(如果不可能HyperLinkField字段嘗試一個簡單的超鏈接或LinkBut​​ton的)

傳遞控件作爲參數傳遞給JavaScript函數

onclick="selectRow(this)" 


function selectRow(hyperlink) { ... } 

我會讓你弄清楚如何瀏覽DOM以找到父級TR。

一些參考:

domtables

domstructure

希望它可以幫助

0

我的情況:

<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)。 命令名稱必須爲「選擇」以更改行樣式。 GridView在UpdatePanel中。