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;
     }
 }

如何将行转换为数字以进行加一和减一以及如何将 int num 转换回行类型


它不起作用,我可以通过此代码捕获行号

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

但是当我尝试做你提供的非工作时,我需要的是:

Session["Row"] = row;

并提升\将行减一

4

2 回答 2

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 回答
0

您不能将 GridViewRow 转换为 int,但 GridViewRow 具有 RowIndex 属性,请参阅此处的 MSDN 文档:GridViewRow.RowIndex

于 2013-06-13T20:09:37.883 回答