/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
[.Net] Problemer med indlejrede server con~
Fra : Jesper Stocholm


Dato : 08-11-02 13:30

Jeg har et problem med nogle controls, som jeg ikke kan "få fat i" fra
min c#-kode.

Min .aspx-side ser nogenlunde således ud:

<html>
....
<asp:Repeater id="r1" runat="server"/>
   <HeaderTemplate>
       <table>
           <tr>
               <td><asp:Literal id="l1" runat="server"/></td>
           </tr>
   </HeaderTemplate>
   ...
</asp:Repeater>

Min .cs-fil ser i uddrag således ud:

01 puclic class search {
02    protected System.Web.UI.WebControls.Literal l1;
03    protected System.Web.UI.WebControls.Repeater r1;
04    
05    private void Page_Load() {
06        l1.Text = "Resultatet er";
07    }
08 }

Problemet er, at jeg får fejlen

System.NullReferenceException: Object reference not set to an instance of
an object.

i linie 06.

Min mistanke er, at l1 ligger inde i en Repeater ... men jeg er ikke
sikker. Under alle omstændigheder: hvordan får jeg så værdier puttet ind
i min Repeater, hvis de ikke kommer fra det datasæt, der kommer fra fx
databasen ?



--
Jesper Stocholm
http://stocholm.dk
Ny FAQ for dk.edb.internet.webdesign.serverside.asp
se http://asp-faq.dk

 
 
Kim Bach Petersen (08-11-2002)
Kommentar
Fra : Kim Bach Petersen


Dato : 08-11-02 17:29

> Min mistanke er, at l1 ligger inde i en Repeater ... men jeg er ikke
> sikker.

Yeps, det er derfor.

> Under alle omstændigheder: hvordan får jeg så værdier puttet
> ind i min Repeater, hvis de ikke kommer fra det datasæt, der kommer
> fra fx databasen ?

Jeg har selv haft problemet, men kan ikke lige huske præcis, hvordan det
var - måske noget med FindControl:

Dim MyLiteral As Literal
MyLiteral = r1.FindControl("l1")
MyLiteral.Text = "Resultatet er: "

Det kan være jeg vender tilbage senere.

Kim

--
· www.kensho.dk · psykologi og spiritualitet ·



Jakob Andersen (08-11-2002)
Kommentar
Fra : Jakob Andersen


Dato : 08-11-02 19:03

"Kim Bach Petersen" <kim@kensho.dk> wrote
> Jeg har selv haft problemet, men kan ikke lige huske præcis, hvordan det
> var - måske noget med FindControl:
>
> Dim MyLiteral As Literal
> MyLiteral = r1.FindControl("l1")
> MyLiteral.Text = "Resultatet er: "

Det var også min første indskydelse (evt. kombineret med controlnummeret)
men det virker ikke.

Herefter lavede jeg min egen implementation af FindControl

Control FindMyControl(Control c, String s){
int i;
Control found = new Control();
for(i=0;i<c.Controls.Count;i++){
if( c.Controls[i].UniqueID.EndsWith(s) ){
found = c.Controls[i];
break;
}else{
found = FindMyControl(c.Controls[i], s);
if(found != null){
break;
}
}
}
return found;
}

Men af en eller anden grund må jeg ikke få lov til at caste det returnerede
Control objekt til en LiteralControl.

> Det kan være jeg vender tilbage senere.

Det kunne være lidt interresant, for nu har jeg også stirret mig lidt blind
på det

--
Jakob Andersen



Kim Bach Petersen (08-11-2002)
Kommentar
Fra : Kim Bach Petersen


Dato : 08-11-02 20:19

> Det kan være jeg vender tilbage senere.

Der skulle kunne bygges en løsning over Repeater.OnItemDataBound:

<asp:Repeater id="r1" OnItemDataBound="InsertExtra" runat="server">

Sub InsertExtra(sender As Object, e As RepeaterItemEventArgs)
If (e.Item.ItemType = ListItemType.Header) Then
Dim MyLiteral As Literal = e.Item.FindControl("l1")
MyLiteral.Text = "Resultatet er: "
End If
End Sub

Kim



Jakob Andersen (08-11-2002)
Kommentar
Fra : Jakob Andersen


Dato : 08-11-02 20:44

"Kim Bach Petersen" <kim@kensho.dk> wrote
> Dim MyLiteral As Literal = e.Item.FindControl("l1")

Og du er sikker på at denne her går godt?

--
Jakob Andersen



Kim Bach Petersen (08-11-2002)
Kommentar
Fra : Kim Bach Petersen


Dato : 08-11-02 21:00

>> Dim MyLiteral As Literal = e.Item.FindControl("l1")
> Og du er sikker på at denne her går godt?

Jeg har ikke lige prøvet med 'Literal', men det virker fint med
ImageButtons...

Kim




Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste