---
title: "Fylla kontroll ifrån kompilerad klass"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/76208-fylla-kontroll-ifrån-kompilerad-klass"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "erka"
published: "2003-05-07T11:30:43.000Z"
updated: "2003-05-07T20:27:24.000Z"
replies: 7
views: 325
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/76208-fylla-kontroll-ifrån-kompilerad-klass"
---

# Fylla kontroll ifrån kompilerad klass

## #1 — erka, 2003-05-07T11:30Z

Hej!

På min aspx sida har jag en panel (myPanel) i denna panel finns det en asp dropdownlist (DDLcause). I en sub som ligger i en kompilerad klass vill jag fylla denna dropdown med värdet ifrån en databas, hur jag binder datat har jag hajjat men hur skriver jag för att hitta kontrollen, deklarerar den, hur ?

tex

```
Public Sub Get_NCRCauses(CompanyId) 
   Dim DDLcause As System.Web.UI.WebControls.DropDownList 
   DDLcause.items.add(New Listitem("Erka", "12")) 
   DDLcause.items.add(New Listitem("Jonas", "10")) 
End Sub
```

Den anropas ifrån min codebehind sida genom

```
Dim objTCAs TCBuisness = New TCBuisness ()
objTC.Get_NCRCauses(CompanyId) 
objTC= Nothing
```

Då får jag ju som vanligt, Object reference not set to an instance of an object. Jag har alltså inte hajjat hur jag påverkar kontroller på aspx sidorna ifrån kompilerade klasser/namespaces som jag har.

Någon vänlig själ där ute ? :)

Permalänk: https://www.webforum.nu/p/76208

## #2 — renholm, 2003-05-07T12:02Z

Hum, Business lagrets funktion skall retunera t.ex en arraylist så här:

```
DropDown.DataSource = obj.TC.Get_NCRCauses();
DropDown.Databind();
```

```
Public Sub Get_NCRCauses() As ArrayList
  return ArrayList
End Sub
```

Min VB.NET är lite rostig så hoppas du förstår hur jag menar samt att jag har fattat hur du menar =)

Permalänk: https://www.webforum.nu/p/1040013

## #3 — erka, 2003-05-07T12:54Z

Tack renholm, men jag förstår inte vad du menar. Jag undrade över hur jag ifrån mitt buislager binder data till min kontroll på aspx sidorna. 

I min codebehind vill jag anropa en funktion i Buislagret som fyller aspx sidans dropdownkontroll med data från en databas, denna data får jag ut genom att anropa mitt datalager som returnerar ett datatable till buislagret.

1\. Aspx sidan (ingen vb kod), dropdownlistkontrollen DDLcause 

2\. Codebehind (anropar funktionen NCRCauses i buisslagret)

3\. Buisslagret binder data till DDLcause på aspx sidan genom binda en datatable till den. Datatablen får jag genom att anropa funktionen Get_NCRCauses i Datalagret

4\. Datalager, funktionen Get_NCRCauses som får ett datatable ifrån mitt generella databashanteringslager. Jag har detta 4:e lager för jag vill ha sqlfrågorna i ett eget lager då den kanske kommer användas i en winfort etc senare.

5\.Generellt databashanteringslager
Funktion som returnerar ett datatable till 4. Datalager

Jag kanske ska binda datat till dropdownlistkontrollen direkt i codebehind istället ? Det kanske är fel tänkt, det du försöker illustrera ? I vilket lager är det mest logiskt / praxis att fylla en webkontroll med data ?

Permalänk: https://www.webforum.nu/p/1040083

## #4 — erka, 2003-05-07T14:13Z

Jag löste det genom att lägga denna funktionen i mitt Buisslager

```
Public Sub List_NCRCauses(S As Object, E As EventArgs)

  Dim DDLcause As System.Web.UI.WebControls.DropDownList  = CType(s.Findcontrol("DDLcause"), DropDownList)
  Dim objData As NCRBuissData = New NCRBuissData
  Dimm MyDataTable As DataTable = objData.Get_NCRCauses
  objData = Nothing
		
  Lcause.DataSource = MyDataTable
  Lcause.DataValueField = "Pk_CauseId"
  Lcause.DataTextField = "CauseName"
  Lcause.DataBind()
End Sub
```

Problemet är att min sub i codebehind ser ut så här

```
Sub Page_load(Sender As Object, E As EventArgs)
If  NOT (Page.IsPostBack)
  Dim objNCR As NCRBuisness = New NCRBuisness()
  objNCR.List_NCRCauses(Sender,e) 
  objNCR = Nothing
End If
End Sub
```

och skicka in (Sender,e) till subben List_NCRCauses känns konstigt, har jag fel ?

Det andra problemet är att jag skulle vilja skicka in en parameter till denna sub som talar om ifall jag ska fylla den med någoting över huvudtaget, hur ska man lyckas lösa det.

Permalänk: https://www.webforum.nu/p/1040164

## #5 — renholm, 2003-05-07T16:57Z

Ok, men grejen med Business lagret är inte direkt att du ska binda kontroller där utan att ge data till kontroller så som i mitt exempel.

Permalänk: https://www.webforum.nu/p/1040355

## #6 — erka, 2003-05-07T17:14Z

Ok, så det är meningen att man ska fylla kontroller i codebehind då alltså.

Permalänk: https://www.webforum.nu/p/1040376

## #7 — renholm, 2003-05-07T19:50Z

ja, och inte i business

Permalänk: https://www.webforum.nu/p/1040457

## #8 — erka, 2003-05-07T20:27Z

Ok :) Då är jag lite klarare i skallen förstår tom varför ;) , tack renholm.

Permalänk: https://www.webforum.nu/p/1040505

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/76208-fylla-kontroll-ifrån-kompilerad-klass
