在DataGrid实现超链接的3种方法

1。使用超级链接列在DataGrid中- hyperlinkcolumn

相信很多人都有使用超链接列在DataGrid中。它非常有用,默认情况下只能传递一个参数,如下所示:

复制代码代码如下所示:



正如您所看到的,传递参数的超链接很容易,那么如何传递多个参数呢

2。在DataGrid ItemDataBound事件链接列分配

如果你有一个ID为datagrid1 DataGrid,第一列是一个超级链接列(下标0),那么它的ItemDataBound事件可以写成如下形式。

复制代码代码如下所示:
private void datagrid1_itemdatabound(object sender,system.web.ui.webcontrols.datagriditemeventargs E)
{
如果(e.item。ItemType = = item列表控件中的项的寻呼机| | e.item。ItemType = = item列表控件中的项集| | e.item。ItemType = = item列表控件中的项的页脚)
{
返回,以确定页眉、页脚。
}
其他的
{
超链接的e.item。细胞{ 0 }。控制{ 0 }(超链接); / /在这里也可以使用FindControl
链接。NavigateUrl =webform3。aspxid=XXX姓名XXX;
如果一个列具有,可以写成
webform3。aspxid = + e.item。细胞{ }。文本 / /链接。NavigateUrl =列数;
}
}


如果你想在一个模板列使用超链接,你可以设置柱模板到LinkButton,和多个LinkButton可以在一起,但我不能相同。我们仍然认为秩序是第一列,在这个时候,作为一个LinkButton语句定义的链接。

复制代码代码如下所示:
超链接(超链接)e.item。细胞{ 0 },{ 0 }控制;

更换

复制代码代码如下所示:
链接按钮链接=(LinkButton)e.item细胞{ 0 }。FindControl(号LinkButton);
链接。属性{onclick= ;


当列只有一个,就是LinkButton,它可以实现如下:

复制代码代码如下所示:
e.item。细胞{ 0 },{onclick属性;


这节省了查找控件的时间。

以上,我们谈了两种方法。一是用hyperlinkcolumn列添加到ItemDataBound事件NavigateUrl。另一种是定义在ItemDataBound事件使用Javascript的单击事件。后者更灵活,只在控件中单击事件。

三.使用HTML超链接标记

复制代码代码如下所示:


'
名称=>操作




它的功能是打开Default.aspx当点击和传递参数的ID和名称,及双参数通过数据绑定动态。这种方法在VS2005是成功的,但它在VS2003是错误的。

另一种方法非常聪明。它还实现了对第三种方法的功能:第二列是链接,和ASPX页面代码:

复制代码代码如下所示:
第一列



ItemDataBound事件如下:

复制代码代码如下所示:
公共无效datagrid1_itemdatabound(object sender,datagriditemeventargs E)
{
如果(e.item。ItemType = = item列表控件中的项的寻呼机| | e.item。ItemType = = item列表控件中的项集| | e.item。ItemType = = item列表控件中的项的页脚)
{
返回,以确定页眉、页脚。
}
其他的
{
e.item。细胞{ 1 }。文本= + e.item。细胞{ 1 }。文字+ ; / /在这里,你可以改变你所需要的;
}
}