如何在gridview中添加超连接?
用的是vb.net
代码如下:
Dim cmd As New OleDbCommand(sql, conn)
Dim ds As New DataSet(TableName)
Dim da As New OleDbDataAdapter()
da.SelectCommand = cmd
da.Fill(ds)
DataTable.DataSource = ds.Tables(0)
说明:字段的个数不固定
例如:n个字段,要在第二个字段的显示数据添加超连接,其连接的url与第m个字段有关,这样就需要在显示的数据中,只显示n-1个字段数据,第m个字段数据不显示,怎么做?
------解决方案--------------------1、綁定gridview後,隱藏第M列:
gridview1.Columns[m].Visible = false;
2、把第2列設為模板列:
<asp:TemplateField HeaderText= "單據編號 ">
<ItemTemplate>
<asp:HyperLink ID= "hyperlink " runat= "server " Text= ' <%# Bind( "ApplyID ") %> '> </asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
3、在RowDataBound事件中給第2列設置超連接:
if ((HyperLink)e.Row.FindControl( "hyperlink ") != null)
{
string str = "test.aspx ";
((HyperLink)e.Row.FindControl( "hyperlink ")).NavigateUrl = str + "?ApplyID= " + .Row.Cells[m].Text;
}
//呵呵,我太久沒用vb.net了,上面的這部份代碼樓主自己改改吧
------解决方案--------------------这个在前台绑定数据的时候可以做判断
------解决方案--------------------添加个HyperLinkField 列 调用捆梆的数据库里一个字段,再把里面属性设置一下
<asp:HyperLinkField DataNavigateUrlFields= "id " DataNavigateUrlFormatString= "ceshi.aspx?tid={0} "
DataTextField= "usern " HeaderText= "link " Target= "_blank " />
------解决方案--------------------超难问题啊。
------解决方案--------------------這樣的話,樓主可以這樣:
在RowDataBound事件中給第2列設置超連接:
dim str as String
str= " <a href=test.aspx "
e.Row.Cells[1].Text= str + "?ApplyID= " + e.Row.Cells[m].Text+ " > "+e.Row.Cells[1].Text+ </a>
//思路就是把一個帶參數的超連接直接裝進第2列。
------解决方案--------------------顶