2012-07-30 67 views
1

我加入一個下拉使用模板字段爲GridView控件:如何突出顯示gridview中的選定行?

<asp:TemplateField HeaderText="Change Color"> 
        <ItemTemplate> 
         <asp:DropDownList ID="dropdownid" DataSourceID="sqldatasource_id" DataTextField="username" 
          BackColor="GrayText" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" AppendDataBoundItems="True" runat="server" AutoPostBack="True"> 

          <asp:ListItem Text="--Select One--" Value="" Selected="True" /> 
         </asp:DropDownList> 

的SqlDataSource是:

<asp:SqlDataSource ID="sqldatasource_id" runat="server" ConnectionString="<%$ ConnectionStrings:crudconnection %>" 
      SelectCommand="SELECT [username] FROM [crudtable]"></asp:SqlDataSource> 

Indexchange-事件是:

protected void GridView1_SelectedIndexChanged(object sender,EventArgs e) 
    { 


    } 

我想強調的行當從相應的下拉列表中選擇任何值時。 我該怎麼做?

在此先感謝。


我試了一下:

GridView1.Rows[GridView1.SelectedIndex].BackColor = Color.Red; 

但它畢竟是給人一種例外,因爲當跟隨有史以來我選擇從任何下拉列表任意值。

指數超出範圍。必須是非負數且小於集合的大小。 參數名稱:索引

我正在獲取所選行的索引號,因爲我已經增加了它,並且可以使用背色屬性?

回答

0

你可以試試這個:

GridView1.Rows[GridView1.SelectedIndex].BackColor = Color.RedGridView1_SelectedIndexChanged裏面?

應該所選擇的行的背景顏色設置爲紅色

+0

謝謝,我的答覆之前嘗試過了,它正在改變當前行的顏色。 DropDownList ddl =(DropDownList)sender; GridViewRow row =(GridViewRow)ddl.NamingContainer; row.BackColor = Color.Yellow; int abc = row.RowIndex; 在abc我正在獲取當前行的索引。請告訴我如何增加它(語法),以便我可以突出顯示任何所選下拉列表下面的第三行。 – user1544975 2012-07-30 10:26:13

+0

如果'abc'是當前行的'index',那麼你可以執行'GridView1.SelectedIndex + abc',然後改變該行的背景顏色。 – CodeMonkey 2012-07-30 10:34:03

0

嘗試GridView_SelectedIndexChanging()。這是如何:

protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e) 
{ 
    //This is current row. Set it to default color 
    GridView1.SelectedRow.BackColor = System.Drawing.Color.White; 

    //This is selected row. Set it to color you wish 
    GridView1.Rows[e.NewSelectedIndex].BackColor = System.Drawing.Color.Black; 
} 
+0

我做過: ((row.RowIndex)+ 3).BackColor = Color。黑色; 但它顯示錯誤: 錯誤'int'不包含'BackColor'的定義,並且沒有找到接受類型'int'的第一個參數的擴展方法'BackColor'(您是否缺少使用指令或程序集引用? – user1544975 2012-07-30 10:47:03

+0

如果您編寫(row.RowIndex + 3)它是一個int並且int沒有backcolor屬性,則應該編寫GridView1.Rows [e.NewSelectedIndex + 3] .BackColor = System.Drawing。 Color.Black; – 2012-07-30 11:00:13

0

它的工作。我做了如下更改。

int abc=row.rowindex+3; 
GridView1.Rows[abc].BackColor = Color.Yellow; 

感謝您的支持。

0

功能ChangeRowColor(行){

 row = parseInt(row) + 1; 

     if (previousRow == row) 
      return; //do nothing 
     else if (previousRow != null) { 
      document.getElementById("MainContent_gvSimulationManager").rows[previousRow].style.backgroundColor = previouscolor; 
     } 
     previouscolor = document.getElementById("MainContent_gvSimulationManager").rows[row].style.backgroundColor; 
     document.getElementById("MainContent_gvSimulationManager").rows[row].style.backgroundColor = "#888888"; 

     previousRow = row; 

     //Disable and enable Session 
     var simulationStatus = document.getElementById("MainContent_gvSimulationManager").rows[row].cells[3].innerText; 

     EnableAndDisable(simulationStatus); 
相關問題