Avatar billede flashit Nybegynder
02. oktober 2008 - 14:45 Der er 4 kommentarer og
1 løsning

Kald metode med Dynamisk data(Eval)

Hej e.

Jeg har denne metode:
protected string Gravatar(string email, int size)
        {
            System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
            byte[] result = md5.ComputeHash(Encoding.ASCII.GetBytes(email));

            System.Text.StringBuilder hash = new System.Text.StringBuilder();
            for (int i = 0; i < result.Length; i++)
                hash.Append(result[i].ToString("x2"));

            System.Text.StringBuilder image = new System.Text.StringBuilder();
            image.Append("<img src=\"");
            image.Append("http://www.gravatar.com/avatar.php?");
            image.Append("gravatar_id=" + hash.ToString());
            image.Append("&amp;rating=R");
            image.Append("&amp;size=" + size);
            image.Append("&amp;default=");
            image.Append(Server.UrlEncode("http://example.com/noavatar.gif"));
            image.Append("\" alt=\"\" />");
            return image.ToString();
        }

Den kalder jeg på denne måde:
<%=Gravatar("email@email.dk", 80)%>

Dette virker super.

Men nu vil gerne benytte den i en datalist.

Den måde jeg normalt udskriver data på er som vist her:
<asp:Label ID="lblForfatter" runat="server" Text='<%# Eval("Forfatter") %>' />

Men hvis jeg prøver det tilsvarende på denne metode:
<%=Gravatar(Eval("ReplyEmail").ToString(), 80)%>

Så kommer denne fejl:
Databinding methods such as Eval(), XPath(), and Bind() can only be used in the context of a databound control

Er her en som ved hvad man gør ved det?

Mvhj
Jakob
Avatar billede flashit Nybegynder
02. oktober 2008 - 14:52 #1
Hvis jeg prøver at kalde metoden med:
<%=Gravatar(DataBinder.Eval(Container.DataItem, "ReplyEmail").ToString(), 80)%>

Så kommer følgende fejl:
The name 'Container' does not exist in the current context

Men jeg kan godt udskrive den på siden, som vist her:
<%#DataBinder.Eval(Container.DataItem, "ReplyEmail")%>

Siger det jer noget?
Avatar billede flashit Nybegynder
02. oktober 2008 - 15:43 #2
Måske jeg lige skulle sige at jeg kaldet min metode i en dataliste.

<asp:DataList ID="dlBlogComments" runat="server">
<SeparatorTemplate><br /></SeparatorTemplate>
    <ItemTemplate>
Avatar billede flashit Nybegynder
02. oktober 2008 - 22:08 #3
lukker.
Avatar billede flashit Nybegynder
02. oktober 2008 - 22:09 #4
fandt ikke en løsning, så hvis der er en som kender en så sig endelig til. :-)
Avatar billede mikalj Nybegynder
03. oktober 2008 - 08:19 #5
prøv lige at vise hele din dataliste.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester