2009-11-22 10 views
21

Prima stavo cambiando HyperLink.NavigateUrl in code-behind su Page_Load().HyperLink con NavigateUrl con Eval(). Dov'è l'errore?

Ma dopo aver deciso di farlo in progettazione utilizzando il metodo Eval().

<asp:HyperLink runat="server" 
    NavigateUrl='<%# String.Format("~/Refuse.aspx?type={0}&id={1}", Eval("type"), Eval("id")) %>' Text="Refuse" /> 

o

<asp:HyperLink ID="urlRefuse" runat="server" 
    NavigateUrl='<%# String.Format("~/Refuse.aspx?type={0}&id={1}", Request["type"], Request["id"]) %>' Text="Refuse" /> 

dove id e type - sono variabili da Request.

Ma non funziona. Viene visualizzato solo il testo non elaborato 'Rifiuta'. Dov'è il mio errore? Grazie in anticipo.

+0

Id prperty di ur collegamento ipertestuale manca ... è che causa l'errore non so ... –

+0

@Pandiya: Suoni misteriosamente e nello stesso tempo - realistica. Ma sfortunatamente non ha aiutato. – abatishchev

+2

NavigateUrl = '<% # Eval ("tipo", "id", "~/Refuse.aspx? Type = {0} & id = {1}")%>' –

risposta

54

questo sta lavorando molto

NavigateUrl='<%# Eval("type","~/Refuse.aspx?type={0}") %>' 
+0

Ho smesso di utilizzare i moduli Web anni fa, eppure sono venuto anni dopo per imparare qualcosa del genere è stato così facile. – Ernesto

3

Prova e ViewSource nel browser, cosa viene reso al client nel tuo href? È quello che ti aspettavi?. Se si sta tentando di utilizzare variabili dalla raccolta della richiesta non è possibile utilizzare Eval, è necessario utilizzare i parametri della stringa di query della richiesta.

<asp:HyperLink runat="server" 
    NavigateUrl='<%# String.Format("~/Refuse.aspx?type={0}&id={1}", Request["type"], Request["id"]) %>' Text="Refuse" /> 
+0

Il prossimo è il rendering: Refuse. Grazie per il suggerimento. L'ho usato. Lo stesso risultato .. – abatishchev

+1

Stai cercando di usare i valori dalla query stringa? Hai provato a utilizzare Request ["id"] invece di Eval ("id")? – Phaedrus

+1

Prova ad aggiungere Page.DataBind() al tuo Page_Load. – Phaedrus

-1

Prova questo:

<asp:HyperLink ID="HyperLink2" runat="server" onclick='<%# String.Format("AcceptUser({0},{1})",Eval("UserId"), Eval("TsId")) %>' NavigateUrl="javascript:void(0)" Visible='<%# (bool)Eval("CanDelete") %>'>Accept</asp:HyperLink> 
-1

Prova questo:

HttpUtility.UrlEncode(Eval("type") 
-1

Prova questo ha funzionato per me:

Eval("type").ToString() 
14

Questo ha funzionato per me

NavigateUrl='<%# String.Format("{0}.aspx?ID={1}", DataBinder.Eval(Container.DataItem, "Category"), DataBinder.Eval(Container.DataItem, "Post_ID")) %>'