Felsök: Sys.ArgumentNullException: Value cannot be null

Något av det värsta som finns är att debugga Ajax-funktioner. AJAX Control Toolkit kan slänga ur sig en del väldigt konstiga felmeddelanden och de är inte lätta att lösa. Tänkte nu börjar dokumentera dem innan jag blir allt för galen.

Nyss fick jag detta i IE7:

Error: Sys.ArgumentNullException: Value cannot be null. Parameter name: element

På Firefox visas ett ändå mer förbryllande meddelande:

Sys.ArgumentNullException: Value cannot be null. Parameter name: element Sys$CultureInfo$_getAbbrMonthIndex("")ScriptRe...=15a6fa0c (line 6391) ScriptResource.axd?d=Mp3wOTv2U48tSwOzRbx9I5sb41bR8P9ogeRdPKRzZ5RBTNpXVRJNcEL9psPGosr4vyEbYVFfS05BUAtE2hlW2Q2&t=3004b210()()ScriptRe...=3004b210 (line 499) [Break on this error] this._upperAbbrMonths = this...s.dateTimeFormat.AbbreviatedMonthNames);

Googlade och började förstå att det hade med ModalPopupExtender att göra.

Min såg ut så här:

<ajaxToolkit:ModalPopupExtender ID="uxAddToProductModalPopupExtender" runat="server" TargetControlID="modaldummy" PopupControlID="uxAddToProductPanel" BackgroundCssClass="modalBackground" CancelControlID="uxCancelAddToProduct">
</ajaxToolkit:ModalPopupExtender>

Lite längre ner på sidan ligger knappen som visade sig vara boven i dramat.

<asp:Button runat="server" ID="uxCancelAddToProduct" Text="Stäng" Visible="false" />

Den var gömd med Visible="false" och skapade alltså null-exception i extendern. Sätter jag Visible till true få försvinner felet.

By Jesper Lind

Buggsök: Tid i textBox med CalendarExtender

En bloggeditor spelade spratt med oss. Tiden i datumet då det postades ändrades till midnatt (00:00:00) då och då. Trodde först det var nån databas-grej, men när jag debuggade så kom jag på att vår ajax-kalender var felinställd. Så här såg den ut.

<asp:TextBox Font-Size="10px" ID="uxPublishedDate" Width="100"
         Text='<%# Bind("PublishedDate") %>'
         runat="server" />
         <ajaxToolkit:CalendarExtender runat="server"
         ID="CalendarExtender1"
         TargetControlID="uxPublishedDate"
         Format="yyyy-MM-dd HH:mm:ss">
         </ajaxToolkit:CalendarExtender>

När jag tog bort Format="yyyy-MM-dd HH:mm:ss" fungerade det bättre och tiden behölls.

By Jesper Lind

Uppdatering 10920 av AJAX Control Toolkit

Uppdatering 10920 av AJAX Control Toolkit släpptes för lite mer än en vecka sen. Har installerat den på ett eget projekt idag och allt verkar fungera bra.

Uppdateringen innehåller inga ändringar som förstör gammal funktionalitet utan bjuder istället på många buggfixar. Man behöver inte modifiera Web.Config på något sätt utan det är bara att byta ut AjaxControlToolkit.dll mot den nyare versionen. Filerna finns att ladda ner på CodePlex.

Shawn Burke skriver mer om uppdateringen.

Delay's blog går in lite djupare och berättar även att man hade planerat att inkludera ett förbättrat ramverk för testning. Man hann dock inte med att få klart det i tid utan beslutade sig för att skjuta på det till framtiden. Något att se fram emot till nästa uppdatering med andra ord.

By Jesper Lind

Ladda bara innehåll i flikar på Tabs-kontrollen när det behövs

Tabs-kontrollen i Asp.Net Ajax är cool. Men något att tänka på när man använder den är att alla flikar laddas in när den rendereras, även de som är gömda.

Det fick jag själv bittert erfara när jag hade utvecklat en omfattande applikation med Tabs. Den var seg som sirap när jag väl körde den på produktionsservern.

Om man har mycket funktionallitet under varje flik, vore det bättre om denna bara laddades när man klickar på den. Shawn Burke verkar ha en smidig lösning, den artikeln ska jag kolla på nästa gång det är dags för att använda Tabs.

Uppdatering: Via en av ScottGu's länktips-postningar (massa bra AJAX-releaterat) hittade jag Matt Berseth's blogg som också skriver om hur man kan göra så att flikar i Tabs laddar först när man klickar på dem. Han har också ett demo på "Lazy-load-tabs".

By Jesper Lind

Ny release av AJAX Control Toolkit

För en vecka sen släpptes en ny version AJAX Control Toolkit. Läs om vad som är förbättrat i denna version 10301.

Två nya kontroller finns med i paketet. Dels SlideShow som visar bilder och kan kopplas mot en webservice.

Sen även ListSearch som jag verkligen gillar. Här kan man söka i en Dropdownlista med knapptryckningar. Är en bra lösning på detta problemet som jag belyst tidigare.

By Jesper Lind

ASP.NET AJAX 1.0 levereras i skarp version

http://www.codeodyssey.se/upload/resource/blog/NET-AJAX.png

Nu meddelas fantastiska nyheter i .NET-världen, ramverket ASP.NET AJAX 1.0 är klart och finns att ladda ner på den officiella hemsidan. Kolla även in dokumentationen som har utökats en hel del sedan beta-versionerna.

I AJAX Control Toolkit har även några nya kontroller lagts till och det finns demonstrationer på AutoComplete, Calendar, MaskedEdit och Tabs.

Så nu är det äntligen läge att börja använda denna nya teknik från Microsoft på sina skarpa projekt, utan att riskera att behöva koda om för förändringar mellan versionerna.

Via: Nikhilk.net

Läs även mer om releasen på Scott Guthries blogg där han förklarar lite om de senaste ändringarna. Värt att notera är att produkten blir historiskt, i den bemärkelsen att det är den första produkten från Microsoft som släpps som öppen källkod. Supporten kommer vara igång 24 timmar om dygnet i åtminstonde 10 år framåt.

By Jesper Lind