2010-09-03 7 views
1

La première ligne commentée ci-dessous fonctionne avec un ApplicantId codé en dur, et tout ce dont j'ai besoin est de le faire fonctionner en passant la colonne ApplicantId actuelle sur la même grille.Pass ID de la ligne GridView à la fonction Javascript

J'ai essayé pendant plusieurs jours maintenant, et quelque chose comme la deuxième ligne commentée ne fonctionne pas pour moi. S'il vous plaît aider.

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
DataKeyNames="ApplicantID" > 
<Columns> 

<asp:TemplateField HeaderText="Select"> 
<ItemTemplate> 
<asp:CheckBox ID="CheckBox1" runat="server" /> 
</ItemTemplate> 
</asp:TemplateField> 

<!-- works --> 
<asp:HyperLinkField NavigateUrl="javascript:popUp(3)" Text="Select" Target="_parent"/> 

<!-- doesn't work --> 
<asp:HyperLinkField NavigateUrl='"javascript:popUp("<%# + DataBinder.Eval(GridView1.DataItem,"ApplicantId") %> + ")"' Text="View" /> 

</Columns> 
</asp:GridView> 

Répondre

1

Frustrant, je ne l'ai jamais été en mesure d'obtenir une HyperLinkField de sortie sensiblement en essayant de produire un javascript Url. Ce qui suit, cependant, travaillera pour vous:

<asp:TemplateField> 
    <ItemTemplate> 
     <asp:HyperLink runat="server" 
      NavigateUrl='<%# "javascript:popUp(" + Eval("ApplicantId") + ")" %>' 
      Text="View"> 
     </asp:HyperLink> 
    </ItemTemplate> 
</asp:TemplateField> 

Une chose qui pourrait être utile de rappeler à tout moment lorsque vous n'êtes pas un javascript produisiez URL est le DataNavigateUrlFields et DataNavigateUrlFormatString propriétés qu'ils vous permettent de mettre ensemble la URL dans une façon beaucoup plus propre: Je viens

<!-- Doesn't work due to "javascript:" target --> 
<asp:HyperLinkField Text="View" DataNavigateUrlFields="ApplicantId" 
    DataNavigateUrlFormatString="javascript:popUp({0})" /> 
<!-- Does work as targeting a "http://" target --> 
<asp:HyperLinkField Text="View 2" DataNavigateUrlFields="ApplicantId" 
    DataNavigateUrlFormatString="http://localhost/popUp/{0}/" /> 
1

sur ce poste Essayez cela, il travaillera

<asp:TemplateField> 
<HeaderTemplate>Require Details ?</HeaderTemplate> 
<ItemTemplate> 
      <a href='javascript:ShowItemDetail(<%# Eval("Id")%>)'>Yes</a> 
</ItemTemplate> 
</asp:TemplateField> 

:)

Questions connexes