0

リストを作ろうとしています。Gridviewで行を選択すると、上下に赤い線が表示されます

ASP の側面

 protected void rowCommand(object sender, GridViewCommandEventArgs e)
{

    switch (e.CommandName)
    {

        case "PIC":

                ImageButton i = (ImageButton)e.CommandSource;
                GridViewRow row = (GridViewRow)i.NamingContainer;
                row.BackColor = System.Drawing.Color.Red;
                **//problem**
                row = Convert.ToInt32(row + 1);
                //problem
                Session["Row"] = row;
     }
 }

1を加算して1を減算するために行を数値に変換する方法と、int numを行タイプに戻す方法


機能していません。このコードで行番号をキャッチできます

ImageButton i = (ImageButton)e.CommandSource;
                GridViewRow row = (GridViewRow)i.NamingContainer;

しかし、私があなたが提供していることをやろうとするとき、私が必要とするのは、次のものを取ることだけです:

Session["Row"] = row;

行を1つずつ昇格\削減します

4

2 に答える 2

0

GridViewRow を int にキャストすることはできませんが、GridViewRow には RowIndex プロパティがあります。次の MSDN ドキュメントを参照してください: GridViewRow.RowIndex

于 2013-06-13T20:09:37.883 に答える
0

e.CommandArgument は、イベントを生成している行のゼロベースの整数インデックスです。

したがって、e.CommandArgument - 1 は前の行になり、+ 1 は後の行になります。行セットの境界を確認してください (たとえば、負のインデックスがない、長さ - 1 より大きいインデックスがない)。

編集: これらの行を取得するには、次のようにします (保証はありません。IDE は開いていません)。

    GridViewRow gvrBefore = null;

    if ( ((int)e.CommandArgument) > 0) {
       gvrBefore = MyGridObject.Rows[((int)e.CommandArgument) - 1];
    }
于 2013-06-13T20:12:20.947 に答える