2012-07-31 78 views
0

我有gridview模板字段dropdownlist在每一行..所有下拉列表设置为默认值“选择”。当我从下拉列表中选择任何值它将改变第3行以下的颜色比它,但是当我重新选择“选择“选项颜色仍然存在第三行。我不需要它,它应该改变为默认的颜色gridview是白色的。 这是我的代码。将下拉列表值重新选为默认选项(“选择”)时如何更改行颜色?

protected void GridView1_SelectedIndexChanged(object sender,EventArgs e) 
    { 

     DropDownList ddl = (DropDownList)sender; 
     GridViewRow row = (GridViewRow)ddl.NamingContainer; 

     int g = row.RowIndex + 3; 
     int current_row_index = row.RowIndex; 
     foreach (GridViewRow gvRow in GridView1.Rows) 
     { 

      gvRow.BackColor = Color.White; 

      if (gvRow.FindControl("dropdownid") != null && gvRow.RowIndex != current_row_index) 
      { 
       ((DropDownList)gvRow.FindControl("dropdownid")).SelectedIndex = 0; 
      } 
      } 

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

     } 
+0

要吸引更多答案,您应该添加与您正在使用的语言或工具相对应的标签。你可以通过[编辑你的问题](http://stackoverflow.com/posts/11738506/edit)并在编辑页面底部添加标签来实现。 – assylias 2012-07-31 11:03:37

回答

0

Solved.I对代码做了如下更改并且工作正常。

protected void GridView1_SelectedIndexChanged(object sender,EventArgs e) 
    { 

     DropDownList ddl = (DropDownList)sender; 
     GridViewRow row = (GridViewRow)ddl.NamingContainer; 
     int count=0; 
     int g = row.RowIndex + 3; 
     int current_row_index = row.RowIndex; 
     foreach (GridViewRow gvRow in GridView1.Rows) 
     { 

      gvRow.BackColor = Color.White; 
      if (((DropDownList)gvRow.FindControl("dropdownid")).SelectedIndex != 0) 
      { 
       // GridView1.BackColor = Color.Yellow; 
       count++; 

       Response.Write("null"); 

      } 

      if (gvRow.FindControl("dropdownid") != null && gvRow.RowIndex != current_row_index) 
      { 
       ((DropDownList)gvRow.FindControl("dropdownid")).SelectedIndex = 0; 
      } 
      } 



      GridView1.Rows[g].BackColor = Color.Red; 
       Response.Write("count="+count); 

       if (count == 0) 
       { 
        foreach (GridViewRow gvRow in GridView1.Rows) 
        { 
         gvRow.BackColor = Color.White; 

        } 

       } 

     }