我正在尝试制作一份清单。 当我在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;
并提升\将行减少一个
答案 0 :(得分:0)
您无法将GridViewRow转换为int,但GridViewRow具有RowIndex属性,请参阅此处的MSDN文档:GridViewRow.RowIndex
答案 1 :(得分:0)
e.CommandArgument是生成事件的行的从零开始的整数索引。
所以e.CommandArgument - 1将是之前的行,而+ 1将是之后的行。确保检查行集的边界(例如,没有负索引,没有索引大于length - 1)
编辑:要获取这些行,你会做类似的事情(没有保证,IDE没有打开):
GridViewRow gvrBefore = null;
if ( ((int)e.CommandArgument) > 0) {
gvrBefore = MyGridObject.Rows[((int)e.CommandArgument) - 1];
}