1

私は .Net プロジェクトに取り組んでおり、GridView に問題があります。

私のページにはいくつかのボタンがあります。GridView をバインドするボタンをクリックするとすべて問題ありませんが、その後、他のボタンをクリックすると、行の最後に空のセルがもう 1 つ表示され、テキスト「Monday」が含まれます。

誰かが私に何が問題なのか教えてもらえますか?

ありがとう

これは私のコードです。

       protected void GridView1_RowDataBound1(object sender, GridViewRowEventArgs e)
       {
           if (e.Row.Cells[0].Text.Contains("Monday"))
           {   
                e.Row.BackColor = Color.Gray;
                e.Row.ForeColor = Color.White;
                e.Row.Cells[0].ColumnSpan = 2;
                e.Row.Cells.Remove(e.Row.Cells[1]);
                e.Row.Cells[1].HorizontalAlign = HorizontalAlign.Center;
                e.Row.Cells[2].HorizontalAlign = HorizontalAlign.Center;
                e.Row.Cells[3].HorizontalAlign = HorizontalAlign.Center;
                e.Row.Cells[4].HorizontalAlign = HorizontalAlign.Center;
           }
           else
           {
                e.Row.Cells[0].Width = 45;
                e.Row.Cells[1].Width = 400;
                e.Row.Cells[2].Width = 40;
                e.Row.Cells[3].Width = 40;
                e.Row.Cells[4].Width = 40;
                e.Row.Cells[5].Width = 40;
                e.Row.Cells[0].HorizontalAlign = HorizontalAlign.Center;
                e.Row.Cells[2].HorizontalAlign = HorizontalAlign.Center;
                e.Row.Cells[3].HorizontalAlign = HorizontalAlign.Center;
                e.Row.Cells[4].HorizontalAlign = HorizontalAlign.Center;
                e.Row.Cells[5].HorizontalAlign = HorizontalAlign.Center;      
           }
       }
4

1 に答える 1

1

問題を再現しました。グリッドビューは、列と同じ数にするためにセルを追加しているようです。私が見つけた唯一の修正は、Page_Load イベントに次のコードを追加することでした (任意のボタン メソッドに追加することもできますが、それは実用的ではありません)。

foreach (GridViewRow gridRow in GridView1.Rows) {
if (gridRow.Cells[0].Text.Contains("Monday") && gridRow.Cells[0].ColumnSpan == 2 && gridRow.Cells.Count == 6)
gridRow.Cells.RemoveAt(5);
}

グーグルで見つけたがテストしていない別の解決策(jqueryを使用)は次のとおりです:
http
: //forums.asp.net/t/1413833.aspx/1

于 2012-11-05T20:40:52.590 に答える