Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[ASP.Net/C#] DateBinding werkt niet en veroorzaakt NRE

Pagina: 1
Acties:

  • Martindo
  • Registratie: November 2010
  • Laatst online: 24-10 11:15
Hallootjes mede-devvers,

Ik zit hier in een ASP.Net college waar we een opdracht moeten maken. We moeten een string array binden aan een radiobuttonlist. maar de code op zich klopt (volgens docent) maar wanneer ik de code uitvoer, komt er een NullReferenceException te voorschijn.

C#: WebForm1.aspx.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace asp_06062014
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        public string[] lijstje;

        protected void Page_Load(object sender, EventArgs e)
        {
                lijstje[0] = "Eerste";
                lijstje[1] = "tweede";
                lijstje[2] = "derde";
                lijstje[3] = "vierde";
            
            rblKnoppenlijst.DataBind();
        }
    }
}


ASP: WebForm1.aspx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="asp_06062014.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:RadioButtonList ID="rblKnoppenlijst" runat="server" DataSource="<%# lijstje %>"></asp:RadioButtonList>
    </div>
    </form>
</body>
</html>


De NRE slaat volgens VS2013 Ultimate op line 16 in het eerste blok code. Ik en mijn docent hebben er naar gekeken en ook hij weet niet wat het probleem is. Is er hier iemand die het probleem ziet?

  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 19-11 14:59
Tja, debugging 101, je hebt de lijstje variabele nog niet geinitialiseerd en die is dus nog null. Probeer die maar eens te initialiseren.

Als je docent dit trouwens nog niet ziet wordt het misschien tijd voor een nieuw beroep voor hem/haar |:( 8)7

[ Voor 29% gewijzigd door urk_forever op 06-06-2014 13:16 ]

Hail to the king baby!


  • InZane
  • Registratie: Oktober 2000
  • Laatst online: 21-11 23:48
Je geeft in je titel aan dat de DataBinding een NRE veroorzaakt, maar vervolgens geef je aan dat de VS Debugger verwijst naar regel 16. Daar wordt (nog) niks gedaan met DataBinding.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Het is logisch dat je een NRE krijgt, er wordt immers nooit een waarde aan lijstje toegekend, en lijstje zal dus altijd null zijn.

Proberen een index van lijstje op te vragen, of te assignen zal dus altijd een NRE opleveren.

Zet maar eens een breakpoint op regel 16, dan kun je dat gewoon prima debuggen.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Daarnaast is lijstje geen property maar een field, dat zou ik ook nog even aanpassen.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
Grijze Vos schreef op vrijdag 06 juni 2014 @ 19:54:
Daarnaast is lijstje geen property maar een field, dat zou ik ook nog even aanpassen.
En dan weer weer naast:
Je roept in je Page_Load handler de Databind method op de RadioButtonList control aan, terwijl de DataSource property van die control in je aspx file via een databinding expressie toegekend wordt. Die expresssie wordt pas ge-evalueerd zodra je de Databind van de pagina aan roept.

Er klopt van je hele databinding flow geen moer. Voor simpele scenario's zal het blijven werken, omdat WebForms enorm veel correcties op de page lifecycle toe past onder de kap, maar het kost je wel een bak performance. In meer complexe scenario's gaat het gewoon je applicatie stuk of onbeheerbaar maken.


Verder eens met urk_forever:
urk_forever schreef op vrijdag 06 juni 2014 @ 13:14:
Als je docent dit trouwens nog niet ziet wordt het misschien tijd voor een nieuw beroep voor hem/haar |:( 8)7
Vast wel weer zo'n kansloos geval dat uit een waardeloos lesboek staat op te dreunen i.p.v. echt kennis van zaken te hebben.

[ Voor 19% gewijzigd door R4gnax op 06-06-2014 20:22 ]


  • Martindo
  • Registratie: November 2010
  • Laatst online: 24-10 11:15
Allen bedankt voor de reacties, ik merkte al snel op dat het inderdaad eigenlijk een beetje nadenken vereiste om de fout te zien.

Overigens even kort over de docent: hij las mee:P maar het is geen kansloos geval dat uit een waardeloos lesboek. Hij heeft daadwerkelijk kennis van zaken, laten we het houden op een 'het-is-vrijdag-middag-en-ik-wil-in-de-zon-bier-drinken'-kijkfoutje,
Pagina: 1