Avatar billede bsp_andreas Nybegynder
30. september 2004 - 09:56 Der er 7 kommentarer

LinkButton i Datagrid problem

Hej.

Jeg prøver at indsætte LinkButton på mit datagrid således:

...
<ItemTemplate>
  <asp:LinkButton id="LinkButton3" runat="server">
    <%# DataBinder.Eval(Container.DataItem, "ordrenr") %>
  </asp:LinkButton>
  ...
</ItemTemplate>
...

og laver et click_event således:

private void LinkButton3_Click(object sender, System.EventArgs e)
{
  Response.Write( ((LinkButton)sender).Text );
}


Men når jeg prøver at køre siden får jeg en "System.NullReferenceException: Object reference not set to an instance of an object"

Source Error:
Line 85:         private void InitializeComponent()
Line 86:         {   
Line 87:             this.LinkButton3.Click += new System.EventHandler(this.LinkButton3_Click);
Line 88:             this.Load += new System.EventHandler(this.Page_Load);
Line 89:


Source File: c:\inetpub\wwwroot\bspsys\ordre\ordreoversigt.aspx.cs    Line: 87

Stack Trace:


[NullReferenceException: Object reference not set to an instance of an object.]
  BSPsys.Ordre.OrdreOversigt.InitializeComponent() in c:\inetpub\wwwroot\bspsys\ordre\ordreoversigt.aspx.cs:87
  BSPsys.Ordre.OrdreOversigt.OnInit(EventArgs e) in c:\inetpub\wwwroot\bspsys\ordre\ordreoversigt.aspx.cs:77
  System.Web.UI.Control.InitRecursive(Control namingContainer) +241
  System.Web.UI.Page.ProcessRequestMain() +174


Er det umuligt for mig eller???
Avatar billede snepnet Nybegynder
30. september 2004 - 12:17 #1
du skal gøre det, at du hooker op på datagriddets ItemCommand istedet. i den handler kan du så udlede hvad der er sket (klikket på), og sikre at der så sker det rigtige.

du vil få en handler som nedenstående :

private void grid_ItemCommand(object source, DataGridCommandEventArgs e)
{
  // e.CommandSource er så din linkbutton, hvis det er den der er klikket på.
}

kan du følge det ?


mvh
Avatar billede bsp_andreas Nybegynder
30. september 2004 - 12:46 #2
undskyld, men det er en repeater :) - er det det samme så??
Avatar billede snepnet Nybegynder
30. september 2004 - 17:41 #3
Jeps... det er det samme - argumentet er bare af type RepeaterCommandEventArgs istedet.
mvh
Avatar billede jepsen999 Nybegynder
30. september 2004 - 19:06 #4
En anden måde er at definere eventhandleren i din aspx:
<asp:LinkButton id="LinkButton3" runat="server" OnClick="DinHandler">

og derefter indsætte følgende i din code-behind:
protected void DinHandler(object sender,EventArgs e){
  LinkButton dinLinkButton = sender as LinkButton;
  // gør hvad der skal gøres
}
Avatar billede snepnet Nybegynder
30. september 2004 - 19:13 #5
jep - den er også sikker nok.
Avatar billede snepnet Nybegynder
09. oktober 2004 - 15:27 #6
hej andreas.
jeg smider et svar her, hvis du kunne bruge noget af mit til noget :o)
mvh
Avatar billede snepnet Nybegynder
21. oktober 2004 - 16:33 #7
hej andreas... kan vi lukke her ?
mvh
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