Jag har en DataList som jag binder med ett DataSet, DataSet:et får data ifrån min databas med kolumnerna Name, Url och Hits.
Det jag vill göra nu är att i min DataList visa endast Name och Hits. Här ska Name vara än hyperlänk med url:en från Url i DataSet:et. Jag har letat en del men inte hittat ngt bra, så om någon har en bra tutorial på problemet, posta det. Alternativt om ni har tips på hur jag ska gå till väga! Tack :bire
Jag har lagt in lite tagar och så innanför <ItemTemplate>, men om man nu skulle vilja utföra lite code-behind innan man skickas iväg till url:en på de olika länkarna. Hur gjör man detta? skulle behöva kalla på en metod som tar som inparametrar de olika kolumnvärdena!
ItemCommand?
Nu när du frågar så kollade jag, jag lade till i event på datalisten, en metod för ItemCommand. Men jag ser nu att ingen kod skapades på html-sidan. Kan du hilfa till lite på vägen?! :)
Som jag förstår dig så vill du när man trycker på en länk, gå till din code-behindsida och utföra lite fuffens och sedan skickas vidare?
Om det är så du menar så skall du inte använda HyperLink, utan en linkButton och i denna finns ett OnClick event, då kommer du gå till din code-behind sida när du trycker på linkbuttonen och i det event får du sedan göra en Response.Redirect() för att komma till rätt sida.
Som riktig rookie på asp.net så är detta säkert en knäpp fråga..
Men jag har nu lagt in en linkButton i min DataList och använder mig utav CommandName och CommandArgument för att skicka med ett par argument till en metod som sedan uppdaterar i databasen. Men när man klickar på linkButton så uppdateras allt i databsen korrekt fast på sidan ligger allt ett "steg" efter. Hur löser man detta? Vill att det ska uppdateras samtidigt...
Sedan vill jag kunna skapa ett nytt fönster som skickar en till den länk man klickat på "eller url-värdet ivf) :) Tacksam för hjälp!
Du kan inte från din codebehind nå ett annat fönster. om du vill det så måste du istället för en redirect skriva ut en liten javascript funktion som öppnar ett nytt fönster och laddar rätt sida.
Detta kan du lösa med Page.RegisterClientScript() eller vad funktionen nu heter.
Hur menar du med att sidan ligger ett steg efter? Är det så att du uppdaterar namnet på en person och efter din postback så är namnet inte ändrat, men efter ytterligare en postback så är namnet ändrat?
om det är så så brukar felet vara att man inte binder om sina controller i event methoden, alltså i din onClick metod så måste du fylla dina kontroller med data från databasen, eftersom det är först nu som datan i databasen har blivit ändrad.
kollar lite på det dära "script-registreringen" nu och har ett exempel som jag har i Page_Load:
// Form the script that is to be registered at client side.
String scriptString = "<script language=JavaScript> function DoClick() {";
scriptString += "myForm.show.value='Welcome to Microsoft .NET'}<";
scriptString += "/";
scriptString += "script>";
if(!this.IsClientScriptBlockRegistered("clientScript"))
this.RegisterClientScriptBlock("clientScript", scriptString);[/
När jag sedan kollar på källan så är javascriptet där :)
Problemet är att jag hittar inte någonstans hur jag kan anropa detta från code-behind!