[ASPX - C#] asp:table met mailto link werkt niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Griffin
  • Registratie: Maart 2003
  • Laatst online: 16-09 12:37

Griffin

Is mythical

Topicstarter
Ik zit met een probleem tijdens het maken van een prototype.
Waar ik mee bezig is dat ik dynamisch een asp:table in de pageLoad van een aspx pagina wil opbouwen. Dit gaat allemaal goed tot ik een email adres wil plaatsen.

Hoe bouw ik het op:
De asp:Tabel bestaat al in de ASPX code.
In de C# code maak ik een TableCell en plaats in de .Text
code:
1
<a href="mailto:iets@iets.nl">iets</a>


Als ik een <A HREF> (zonder mailto) of 'plaintext' in de .Text property van de TableCell plaats werkt dit zonder problemen. Echter de mailto dus niet.
Nu weet ik dat de mailto code werkt want als ik deze code buiten de table in de ASPX code zet dan werkt dit en wordt mijn email programma getoond.

Maar wat is nu precies het probleem als ik de mailto dynamisch opbouw in de table.
In de code staat uit volgende:
code:
1
TableCell.Text = <a href=\"mailto:iets@iets.nl\">iets</a>;


Als ik dan in de source ga kijken staat dit er: (met andere tables en tr's er omheen)
code:
1
<td><a href="mailto:iets@iets.nl">iets</a></td>


Als ik in de F12 mode van IE ga kijken staat er dit:
code:
1
<td><a href="">iets</a></td>

Er staat niets tussen de quotes achter href=. de data in tussen de 'a' tags staat er wel.

Ik heb ook in FF gekeken, maar dit maakt niets uit.

De reden dat ik het zo opbouw is omdat ik in de backend code niet vaste data neerzet, maar er DataView tags wil neerzetten {{TAG}}. Deze worden dan door de AJAX DataView gevuld met aangeleverde data.
Dit is dus ook de reden dat ik een HTML link gebruik en niet een ASP link. Dat krijg ik al helemaal niet aan de praat en kan ook niet op internet vinden hoe dit zou moeten.

Wat heb ik al geprobeerd:
- single quotes ipv \"
- Het gedeelte voor DataView ervoor te zetten of juist weg te halen. (dat is sys:href ipv href)
- in FF en IE getest
- internet afgezocht maar weet niet of het aan DataView ligt (denk het haast niet) of dat het aan het dynamisch aanmaken van de tabel.

Het uitleggen van het probleem was niet makkelijk, dus als er onduidelijkheden zijn hoor ik dit graag.

Acties:
  • 0 Henk 'm!

  • Daspeed
  • Registratie: Maart 2001
  • Laatst online: 22:52
Al een HtmlAnchor geprobeerd toe te voegen als child control?

Acties:
  • 0 Henk 'm!

  • Delay
  • Registratie: Juli 2007
  • Laatst online: 17-09 07:57
Bij mij werkt dit prima:

code:
1
2
3
        var c = new TableCell();
        c.Text = "<a href=\"mailto:ubercow@grasslands.org\">mail me</a>";
        row1.Cells.Add(c);

Dat F12 iets anders laat zien dan Show Source vind ik wel wazig. Heb je toevallig een ad blocker of proxy of iets draaien? Probeer het eens op een andere PC?

Acties:
  • 0 Henk 'm!

  • Mephix
  • Registratie: Augustus 2001
  • Laatst online: 15-03 08:21
Delay schreef op woensdag 10 februari 2010 @ 20:26:
Dat F12 iets anders laat zien dan Show Source vind ik wel wazig. Heb je toevallig een ad blocker of proxy of iets draaien? Probeer het eens op een andere PC?
Dat is niet vaag. View Source laat de broncode zien van de pagina zoals die verkregen is van de server. De topicstarter maakt gebruik van pageLoad events en AJAX calls om de pagina na het ophalen aan te passen. Die versie zie je in de IE developer tool.

Het lijkt erop dat er iets niet lekker gaat met je AJAX calls. Initieel (View Source) staat de href wel gevult, na de pageLoad (in developer tool) issie leeg.

Even goed debuggen lijkt me.

[ Voor 15% gewijzigd door Mephix op 10-02-2010 20:41 ]


  • Griffin
  • Registratie: Maart 2003
  • Laatst online: 16-09 12:37

Griffin

Is mythical

Topicstarter
Ik heb nog even snel verder getest en heb gemerkt dat er toch iets mis gaat met het AJAX dataview gedeelte (ookal wordt die cell er (nog) niet mee gevuld).
Want heb net een andere test situatie (oude even uit gecomment) geprobeerd en hier doet de volgende code het wel:
code:
1
2
3
4
5
TableRow tr = new TableRow();
TableCell tc = new TableCell();
tc.Text = "<a href=\"mailto:ergens@mail.nl\">mailen</a>";
tr.Cells.Add(tc);
this.Table1.Rows.Add(tr);


Dus toen heb ik het dynamisch genereren van kolommen en rows weer aangezet, maar het DataView gedeelte uitgezet en toen werkte deze ook.
Dus ik vermoed toch echt dat het daarmee heeft te maken heeft ookal vul ik de mail nog niet met AJAX DataView Tags.

Tot zover de update, ik ga nog wel even verder zoeken, maar ben wel weer een stap verder.

UPDATE:
Ik heb een tijdelijke workaround gemaakt (het schoot me te binnen).
De mail link vervang ik voor een normale link met als link "#".
Dan een Javascript OnClick waar ik het email adres aan meegeef. En hier doe ik Window.Open(mailto:link)

Niet echt netjes maar voor dit prototype momenteel voldoende.

[ Voor 16% gewijzigd door Griffin op 11-02-2010 09:47 ]