HyperLinkColumn里怎样传递2个参数

xifan930 2005-04-13 09:32:25
好比是:yyy.aspx?id=111&classname=kkkkk
但是HyperLinkColumn只能绑定一个参数啊
希望那位大哥用VB给个代码出来。
...全文
131 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xifan930 2005-04-13
  • 打赏
  • 举报
回复
找到一个这样的文章但是好像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绑定。

LoveCherry 2005-04-13
  • 打赏
  • 举报
回复
在使用DataGrid的时候如果你有一个asp:HyperLinkColumn又想使用多个需要绑定的参数作为链接的url,那么请改成模板列,使用普通的link标签<a>或者asp:HyperLink都可以,下面2种实现多绑定参数的解决方案。

(1)后台返回url
前台
<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。


62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧