找到一个这样的文章但是好像SQLSTRING有错误哦因为一个HyperLinkColumn控件只能绑定一个字段 如果你使用的是数据绑定,例如在DataGrid控件中使用HyperLinkColumn,你需要先在SQL语言构造这个字段,例如:<asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False" AllowPaging="True" PageSize="5"> <Columns> ... <asp:HyperLinkColumn Text="details" DataNavigateUrlField="details" DataNavigateUrlFormatString="Detail.aspx?{0}"></asp:HyperLinkColumn>… </Columns> </asp:datagrid> 下面是绑定数据的代码 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If Not IsPostBack Then FillDataGrid() End If End Sub Public Sub FillDataGrid() Dim cnn As SqlConnection = New SqlConnection("server=sha-vbdc-01;database=pubs;Integrated Security=SSPI") Dim sql As String 'sql = "select * from authors" sql = "select *, 'au_id=' + au_id + '&' + 'au_fname=' + au_fname details from authors" Dim cmd As SqlDataAdapter = New SqlDataAdapter(sql, cnn) Dim ds As DataSet = New DataSet() cmd.Fill(ds, "Authors") DataGrid1.DataSource = ds DataGrid1.DataMember = "Authors" DataGrid1.DataBind() End Sub 请注意上面的SQL语句,它构成一个details字段与HyperLinkColumn绑定。
前台
<asp:TemplateColumn HeaderText="打开">
<ItemTemplate>
<asp:HyperLink Text="打开" NavigateUrl='<%# myfunc2(DataBinder.Eval(Container.DataItem,"vName"),DataBinder.Eval(Container.DataItem,"iAge"))%> ' Runat="server" Target="_blank" ID="Hyperlink1">
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>
后台
protected string myfunc2(object s1,object s2)
{
return "newpage.aspx?name="+s1.ToString()+"&age="+s2.ToString();
}
(2)直接前台设定url
<asp:TemplateColumn HeaderText="打开">
<ItemTemplate>
<asp:HyperLink Text="打开" NavigateUrl='<%#"newpage.aspx?name="+DataBinder.Eval(Container.DataItem, "vname")+"&age="+DataBinder.Eval(Container.DataItem, "iage") %>' Runat="server" Target="_blank">
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>其实以上2个方案是一回事情,但是前者更加清晰,而且易于后台动态生成url。
如果你使用的是数据绑定,例如在DataGrid控件中使用HyperLinkColumn,你需要先在SQL语言构造这个字段,例如:<asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False" AllowPaging="True" PageSize="5">
<Columns>
...
<asp:HyperLinkColumn Text="details" DataNavigateUrlField="details" DataNavigateUrlFormatString="Detail.aspx?{0}"></asp:HyperLinkColumn>…
</Columns>
</asp:datagrid>
下面是绑定数据的代码
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not IsPostBack Then
FillDataGrid()
End If
End Sub Public Sub FillDataGrid()
Dim cnn As SqlConnection = New SqlConnection("server=sha-vbdc-01;database=pubs;Integrated Security=SSPI")
Dim sql As String
'sql = "select * from authors"
sql = "select *, 'au_id=' + au_id + '&' + 'au_fname=' + au_fname details from authors"
Dim cmd As SqlDataAdapter = New SqlDataAdapter(sql, cnn)
Dim ds As DataSet = New DataSet()
cmd.Fill(ds, "Authors")
DataGrid1.DataSource = ds
DataGrid1.DataMember = "Authors"
DataGrid1.DataBind()
End Sub
请注意上面的SQL语句,它构成一个details字段与HyperLinkColumn绑定。