在gridview里面加一列链接,点击可以弹出窗口,并在里面进行修改。
找了一下主要是两个方法,一个是我原计划的linkbutton,另外还一个专门的HyperLinkField 。ImageButton 就不想用了.... - =
关于 linkbutton和HyperLinkField 到底有什么区别,暂时还没搞清楚。。。 - =
查了一下用法:
Text='<%# DataBinder.Eval(Container.DataItem,"recordid") %>'
//获取被点击的linkButton所在的GridViewRow
GridViewRow gvrow = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);
int index = gvrow.RowIndex; //获取到行索引 RowIndex
//获取当前行的某列值
string userid=GridView1.Rows[index].Cells[列索引].Text.Trim();
......
HyperLinkField
在【可用字段】里选择HyperLinkField,单击【添加】按钮。
然后选择在【选定的字段】中,选择刚添加的这个HyperLinkField。
在右边按照图示进行设置:
外观-Text:设置链接的文字。
外观-HeaderText:设置链接列的标题。
数据-DataNavigateUrlFields:设置超链接要传递的参数,这里写的“id,name”表示要传递id和name这两个字段的值,注意用逗号分隔,可以设置多个字段。
数据-DataNavigateUrlFormatString:设置要链接到的页面和传递的参数。Default2.aspx?id={0}&name={1}表示要链接到Default2.aspx页面。这里的{0}表示在形成链接时{0}将会被DataNavigateUrlFields中设置的第一个参数实际的值替代,在我们这里是id,{1}将会被name的实际值替代。
最终形成的页面代码如下:
<asp:GridView ID="cityList" runat="server" AutoGenerateColumns="False"> <Columns> <asp:BoundField DataField="id" HeaderText="编码" /> <asp:BoundField DataField="name" HeaderText="名称" /> <asp:HyperLinkField DataNavigateUrlFields="id,name" DataNavigateUrlFormatString="Default2.aspx?id={0}&name={1}" HeaderText="操作" Text="修改" /> </Columns></asp:GridView>
http://wenwen.soso.com/z/q188125953.htm?ri=1466&rq=191624508&uid=0&ch=w.xg.llyjj
RowCommand 当单击 GridView 控件中的按钮时发生。
RowDataBound 在 GridView 控件中将数据行绑定到数据时发生。
觉得有点搞不清 RowCommand 和 RowDataBound了... 囧
我知道这俩发生的时机不同,不过在不同时候做的类似的操作效果相同么??疑问。最近没时间,有空的时候要试一下做个比较