开发者

ASP.NET: Bind HyperLinkColumn to more than one field

Using ASP.NET and the DataGrid, how do I bind a HyperLinkColumn to more than one field?

    Dim detail As New HyperLinkColumn
    With detail
        .Text = "View Details"
        .HeaderText = ""
        .NavigateUrl = "\TeamDetail.aspx?Account={0}&Broker={1}"
        .DataNavigateUrlField = "AccountKey, BrokerNumberKey"
    End With

I was hoping for an data-binding event on HyperLinkColumn but no 开发者_C百科such luck.


You need to use a TemplateColumn. This will give you named controls you can work with in the ItemDataBound event.

ASP

<asp:TemplateColumn>
    <ItemTemplate>
        <asp:HyperLink runat="server" ID="LinkColumn" NavigateUrl="" Text="View Details"></asp:HyperLink>
    </ItemTemplate>
</asp:TemplateColumn>

VB

Private Sub ReportGrid_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles ReportGrid.ItemDataBound
    Const target = "/TeamsDetail.aspx?Account={0}&Broker={1)        Select Case e.Item.ItemType
        Case ListItemType.Item, ListItemType.AlternatingItem
            Dim ctrl = CType(e.Item.FindControl("LinkColumn"), HyperLink)
            Dim row = CType(e.Item.DataItem, DataRowView)
            If ctrl IsNot Nothing Then

                Dim accountKey = CInt(row("PrincipalAccountKey"))
                Dim brokerNumberKey = CInt(row("BrokerNumberKey"))
                ctrl.NavigateUrl = String.Format(target, accountKey, brokerNumberKey)
            End If
    End Select
End Sub
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜