2010-06-18 15 views
5

Asp.net GridView'daki Köprü alanımın, bir açılır iletişim kutusunu açacak olan Javascript işlevini kabul etmediği bir sorunum var. HyperLinkField'ı bir Javascript URL'sine ayarlama

DataNavigateUrlFormatString="~/SomeOtherPage.aspx?Id={0}" 

benim JavaScript bu işi yapmak bir yolu var mı: Bir sayfa url kullandığınızda

Ben mesela, o inşaat,

<asp:GridView> 
    <asp:HyperLinkField 
     DataTextField="SomeColumn" HeaderText="Some Column Text" 
     SortExpression="SomeColumn" 
     HeaderStyle-HorizontalAlign="Left" 
     DataNavigateUrlFormatString="javascript:LaunchSomePopupdialog({0})" 
     DataNavigateUrlFields="Id" 
     ItemStyle-Font-Underline="true" /> 
</asp:GridView> 

Ancak şu pasajı kullanıyorum işlev?

cevap

7

Sanırım asp: hiperlink alanını kullanmadan bir şablon alanının içindeki normal bir etikete değiştirmeniz gerekir.

<asp:TemplateField HeaderText="Some Column Text" ItemStyle-Font-Underline="true"> 
    <ItemTemplate> 
<a href="#" onclick="javascript:LaunchYourStuff('<%#Eval("YourColumnID")%>')"><%#Eval("YourColumnDisplayText")%></a> 
    </ItemTemplate> 
</asp:TemplateField> 

senin asp tümü: O zaman böyle bir şey yapabileceği hyperlinkfield nitelikleri TemplateField etiketi üzerine yerleştirilir olsun.

DÜZENLEME

bu da bir sınır alanını ve ardından RowDataBound olay metni değiştirebilir by design

1

olduğu gibi, hyperlinkfield içinde javascript yerleştiremez. (Bu EnableSortingAndPagingCallbacks çalışmasını sağlayacak):

<asp:BoundField DataField="ID" HtmlEncode="False" /> 

emin HtmlEncode yanlıştır olun!

Protected Sub gv_RowDatabound(sender As Object, e As GridViewRowEventArgs) Handles gv.RowDataBound 
    If e.Row.RowType <> DataControlRowType.DataRow Then 
     Return 
    End If 
    Dim drv = TryCast(e.Row.DataItem, DataRowView) 
    If drv Is Nothing Then 
     Throw New Exception("drv is nothing") 
    End If 
    Const detailsCol As Integer = 4 
    e.Row.Cells(detailsCol).Text = String.Format("<a href='javascript:popUp(""Details.aspx?ID={0}"");'>Details</a>", drv("ID")) 
End Sub 
İlgili konular