---
title: "UserControl i DataGrid"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/95067-usercontrol-i-datagrid"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "renholm"
published: "2004-01-17T00:49:55.000Z"
updated: "2004-01-27T06:45:13.000Z"
replies: 17
views: 447
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/95067-usercontrol-i-datagrid"
---

# UserControl i DataGrid

## #1 — renholm, 2004-01-17T00:49Z

Har en DataGrid i vilken jag har infogat en kontroll, denna kontroll skall ta ett värde från ett fält som bundits till datagriden och visa alla relaterade poster.

I denna användarkontrol (UserControl) använder jag mig av en Collection som instansieras i Page_Load och sedan binds mot en DataGrid i kontrollen. Problemet är att den Guid som "skickas" till UserControl:en bara blir Guid.Empty vilket inte är önskvärt.

Själv tror jag att det beror på att propertien sätts vid DataBind eller dyl och försöker hämtas innan dess i Page_Load vilket skapar problem och förklarar varför den alltid är Empty när Collection skall instansieras. Korrekt bedömning? Lämplig åtgärd för att avhjälpa problemet?

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

## #2 — Dino, 2004-01-17T09:22Z

Har du lite kod.

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

## #3 — renholm, 2004-01-17T11:13Z

Tyckte inte det behövdes men här är lite:

**gear.aspx**

```
<uc:permissions id="ucPermissions" runat="server" GUID="<%# ((GearControl)Container.DataItem).ID %>"></uc:permissions>
```

**permissions.ascx.cs**

```
private Security.Permissions permissions;

public Guid GUID
{
	get { return guid; }
	set { guid = value; }
}
private void Page_Load(object sender, ystem.EventArgs e)
{
	permissions = new Security.Permissions(GUID); // här blir felet, eftersom Permission inte accpterar Guid.Empty.
	if (!Page.IsPostBack)
		Bind();
}

private void Bind()
{
	dlPermissions.DataSource = permissions;
	dlPermissions.DataBind();
}
```

Lösningen torde då vara att placera instansieringen vid något annat tillfälle.

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

## #4 — asmodie, 2004-01-26T15:25Z

Hmz...asså om jag förstår detta rätt vilket jag antagligen inte har gjort. 

Några förslag på vad som kan vara fel:
Security.Permissions(GUID); ska nog vara Security.Permissions(guid);  Och sedan saknar jag guid declarationen...
typ:
private int\[\] guid;

Bara några tankar.

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

## #5 — renholm, 2004-01-26T15:31Z

Tack för svaret men inget av de förslagna lösningarna är till hjälp då GUID och guid i princip blir samma sak, har i alla fall testat med båda. Att deklarationen av guid inte finns med beror på att jag slarvat med inlägget :)

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

## #6 — asmodie, 2004-01-26T15:33Z

vad exakt är guid? Lite små noob på vissa grejer...

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

## #7 — renholm, 2004-01-26T15:59Z

En 32-bitar stor unik "nyckel", bra att ha om man har många olika objekt som ska identifieras.

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

## #8 — asmodie, 2004-01-26T16:05Z

vart får du guit från?

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

## #9 — renholm, 2004-01-26T16:58Z

Menar du hur jag generera dem? Finns flera olika sätt, t.ex. Guid.NewGuid() eller NEWID() i SQL Server.

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

## #10 — asmodie, 2004-01-26T20:24Z

Nej jag menar inte så...det låter som på dig att du läser den från en databas eller liknande? Eller genererar du den programmatiskt? Och vet du att GUID inte är tomt?

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

## #11 — renholm, 2004-01-26T21:21Z

Ja, det kan jag garantera, problemet är att Page_Load körs innan databindningen sker, därför har inte GUID fått något värde eftersom den får sitt värde i och med Databindningen för DataGriden. Det är i alla fall min teori.

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

## #12 — asmodie, 2004-01-26T21:26Z

Varför lägger du inte skapandet av Guid i samband med databindningen?

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

## #13 — asmodie, 2004-01-26T21:26Z

Eller skapar databidningen i page load?

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

## #14 — asmodie, 2004-01-26T22:06Z

Lite nattlig flum kod, tror jag inte fattat problemet riktigt. Här kommer en blanding av kod och pseudokod...

Ex.

public dataGrid minFunktion(Guid minGuid)
{
DataTable dt = skapaData(minGUID)

för varje rad i dt
DataTable dt2 = skapaData(dt.cellenSomSkaLäsasIfrån)
dt.Merge(dt2) sätt ihop dem. eller länka ihopdem hur du nu vill ha dem.

minDataGrid.DataSource = dt
minDataGrid.Bind();

}

i page loaden
{
Panel.Controls.Add(minFunktion(detGeneradeGUID))
}

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

## #15 — Nöff, 2004-01-26T22:07Z

En fråga bara, vad är panel för nåt och hur använder man den?.

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

## #16 — renholm, 2004-01-26T22:09Z

Eftersom alla databinding sker i samband med Page_DataBind kan jag inte styra när GUID propertien sätts då detta görs från DataGriden i Page_DataBind... Alternativet är då att instansiera permissions i Page_DataBind i min kontroll, något jag ska testa nu...

Lite information om Page:
<http://support.microsoft.com/default.aspx?scid=kb;EN-US;305141>

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

## #17 — Nöff, 2004-01-26T22:38Z

Hmm, kikade lite på panel, intressant control, men kan den ha Child control:er? . Ifall den kan det ska jag nog byta min repeater.

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

## #18 — NETwork, 2004-01-27T06:45Z

En panel är just en behållare för andra kontroller. Suverän om man vill dölja/visa valda delar av sidan mellan olika postbacks. Men att ersätta en repeater med en panel låter lite långt... det är ju två väldigt olika kontroller.

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/95067-usercontrol-i-datagrid
