2012-07-31 108 views
0

我在每行中都有一个带有dropdownlist模板字段的gridview。当我从下拉列表中选择任何值时,它会改变比它低的第三行的颜色。但是当我点击另一个下拉列表时,它正在改变比它低的第三行的颜色但前一个下拉列表的索引不会更改为0即“选择”,它仍显示在上次下拉列表中选择的值。我只想当我点击一个下拉列表时,所有其他下拉列表应该索引为0即“选择”除了我点击过的一个。 我做在下拉列表中Selectedindexchange事件后:提前如何更改之前选择的下拉列表的索引?

protected void GridView1_SelectedIndexChanged(object sender,EventArgs e) 
    { 

     foreach (GridViewRow gvRow in GridView1.Rows) 
     { 
       int g1 = gvRow.RowIndex; 
       GridView1.Rows[g1].BackColor = Color.White; 
     } 
      DropDownList ddl = (DropDownList)sender; 
      GridViewRow row = (GridViewRow)ddl.NamingContainer; 
      int g = row.RowIndex + 3; 
      int current_row_index = row.RowIndex; 
      int pp = GridView1.Rows.Count; 
      GridView1.Rows[g].BackColor = Color.Red; 
     } 
    } 

感谢。

+0

跟进:如果你有你要找的答案,请把它标记为正确的。问候 – 2012-08-02 04:37:12

回答

0

只需使用DropdownName.ClearSelection()为您的每个其他下拉菜单除了您调用Selectedindexchange事件。

0

也许是这样的:

 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("nameOfTheDropdown") != null && gvRow.RowIndex != current_row_index) 
      { 
       ((DropDownList)gvRow.FindControl("nameOfTheDropdown")).SelectedIndex = 0; 
      } 
     } 

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

问候

相关问题