VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2828|回复: 22

请解释一下刚才的一些代码 谢谢

[复制链接]

2

主题

11

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-2-19 12:30:01 | 显示全部楼层 |阅读模式
int iIndex = Convert.ToInt32(e.CommandArgument);
这里面的e.commandargument取得的是什么值在前台中的  <asp:ButtonField ButtonType="Button" Text="详细" CommandName="detail" />并没有commandargument值啊
我点击这里他的值是当前的行index那这个是不是这个意思

            GridViewRow row = this.GridView1.Rows[iIndex];
            GridViewRow NewRow = new GridViewRow(iIndex + 1, iIndex, DataControlRowType.DataRow, DataControlRowState.Normal);
//这一行的中(iIndex + 1, iIndex, DataControlRowType.DataRow, DataControlRowState.Normal);
其中DataControlRowType.DataRow, DataControlRowState.Normal指的是新行为什么类型和状态,不明白的是前面的iIndex + 1, iIndex,

            NewRow.Cells.Add(new TableCell());
//为什么这里还要NewRow.Cells.Add(new TableCell());有什么作用
            NewRow.Cells[0].ColumnSpan = row.Cells.Count;

... ...

            this.GridView1.Controls[0].Controls.AddAt(iIndex + 2, NewRow);

            NewRow.Cells[0].Controls.Add(this.rp1);
回复

使用道具 举报

0

主题

322

帖子

115.00

积分

新手上路

Rank: 1

积分
115.00
发表于 2020-4-26 09:15:01 | 显示全部楼层
commandargument 其实就是当前行号.
回复

使用道具 举报

0

主题

322

帖子

115.00

积分

新手上路

Rank: 1

积分
115.00
发表于 2020-4-26 11:00:01 | 显示全部楼层
iIndex+1 是指在当前行后面 的row.

第二个 iIndex 是指对应数据源的位置.其实无所谓,因为他不绑定数据
回复

使用道具 举报

0

主题

322

帖子

115.00

积分

新手上路

Rank: 1

积分
115.00
发表于 2020-4-26 11:30:01 | 显示全部楼层
当然如果你要查询从表用到它也可以.
回复

使用道具 举报

2

主题

11

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-4-26 11:45:01 | 显示全部楼层
那iIndex + 1, iIndex,???
NewRow.Cells.Add(new TableCell());是不是添加列
(是不是添加行的时候行是什么也没有的,要添加列才会有内容显示)
回复

使用道具 举报

0

主题

322

帖子

115.00

积分

新手上路

Rank: 1

积分
115.00
发表于 2020-4-26 12:00:01 | 显示全部楼层
//为什么这里还要NewRow.Cells.Add(new TableCell());有什么作用
这个行还没有单元格.
必须手工添加
回复

使用道具 举报

2

主题

11

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-4-26 13:15:01 | 显示全部楼层
因为iIndex + 1, iIndex,的说明不清楚他说的是什么看不明白
所以不知道这两个是什么意思
我把他们换成别的也不会出错比如:0,0,
回复

使用道具 举报

2

主题

11

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-4-26 14:30:01 | 显示全部楼层
//为什么这里还要NewRow.Cells.Add(new TableCell());有什么作用
这个行还没有单元格.
必须手工添加
-----------------------
这里一添加他的单无格的数量就会为上一行的单无格数吗?
应该只有一个啊
而且他还没有
this.GridView1.Controls[0].Controls.AddAt(iIndex + 2, NewRow);
怎么可以
NewRow.Cells[0].ColumnSpan = row.Cells.Count;
这个时候NewRow.cells数应为1才对啊
回复

使用道具 举报

0

主题

322

帖子

115.00

积分

新手上路

Rank: 1

积分
115.00
发表于 2020-4-26 14:45:01 | 显示全部楼层
我把他们换成别的也不会出错比如:0,0,
===========
因为这个row是手工添加的,所以这个rowIndex和DataItemIndex没有了意义.
但是new  的时候必须指定这个参数.
回复

使用道具 举报

0

主题

322

帖子

115.00

积分

新手上路

Rank: 1

积分
115.00
发表于 2020-4-26 15:15:01 | 显示全部楼层
NewRow.Cells.Add(new TableCell());

这是只添加一个格,与上一行没关系,因为这个row并不是绑定数据得来的.

是new 出来的.




NewRow.Cells[0].ColumnSpan = row.Cells.Count;
这个时候NewRow.cells数应为1才对啊
=========
没错,但 = 号后面是 row row是原来的row,现存的
GridViewRow row = this.GridView1.Rows[iIndex];
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表