0

各行にドロップダウンリストのテンプレートフィールドを持つグリッドビューがあります.ドロップダウンリストから任意の値を選択すると、それより下の3行目の色が変わります.しかし、別のドロップダウンリストをクリックすると、それより下の3行目の色が変わりますが、前のドロップダウンリストのインデックスは 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;
         }
     }

前もって感謝します。

4

2 に答える 2

0

Selectedindexchangeイベントを呼び出しているドロップダウンを除いて、他の各ドロップダウンにDropdownName.ClearSelection()を使用するだけです。

于 2012-07-31T08:05:57.263 に答える
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;  
     }

よろしく

于 2012-07-31T08:09:18.373 に答える