日期:2014-05-20  浏览次数:20427 次

如何在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列。
------解决方案--------------------