---
title: "DataGrid OnItemDataBound"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/106945-datagrid-onitemdatabound"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "DavidB"
published: "2004-07-08T22:07:11.000Z"
updated: "2004-07-14T14:21:35.000Z"
replies: 9
views: 389
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/106945-datagrid-onitemdatabound"
---

# DataGrid OnItemDataBound

## #1 — DavidB, 2004-07-08T22:07Z

Tjena

Har en DataGrid som anropar en funktion med OnItemDataBound
i denna funktion vill jag få ut värden från en kolumn i den aktuella
raden som "binds".

Har kommit såhär långt:

```
public void bldM(object sender, DataGridItemEventArgs e){
	int cId = e.Item.DataItem("cId");
}
```

Får felet:
Compiler Error Message: CS0118: 'System.Web.UI.WebControls.DataGridItem.DataItem' denotes a 'property' where a 'method' was expected

Har försökt lösa det genom att ändra koden på diverse olika sätt
utan större framgång. Någon som ser en lösning?

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

## #2 — renholm, 2004-07-08T23:36Z

Vad har du för datakälla(DataSet, DataReader, Collection etc.)?

DataGrid ex

```
int cId = ((System.Data.DataRow)e.Item.DataItem)["cId"];
```

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

## #3 — DavidB, 2004-07-09T09:42Z

Datakällan är en DataTable

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

## #4 — renholm, 2004-07-09T13:26Z

Testa mitt exempel, borde fungera för DataTable också.

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

## #5 — DavidB, 2004-07-09T14:31Z

När jag testar får jag felet:
Cannot implicitly convert type 'object' to 'int'

och när jag sedan försöker konvertera detta till int så får jag följande:

System.InvalidCastException: Specified cast is not valid.

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

## #6 — renholm, 2004-07-09T15:43Z

```
int cId = (int)((System.Data.DataRow)e.Item.DataItem)["cId"];
```

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

## #7 — DavidB, 2004-07-10T13:24Z

får samma fel som innan:
System.InvalidCastException: Specified cast is not valid.

Här är hela koden:

```
public void bldM(object sender, DataGridItemEventArgs e){
	if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem){
		DataGrid dg = new DataGrid();
		int cId = (int)((System.Data.DataRow)e.Item.DataItem)["cId"];

		WebSiteData wsd = new WebSiteData();
		dg.DataSource = wsd.GetCategories(cId);
		dg.DataBind();

		e.Item.Cells[2].Controls.Add(dg);
	}

}
```

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

## #8 — Dino, 2004-07-10T20:48Z

```
public void bldM(object sender, DataGridItemEventArgs e){
	if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem){
		DataGrid dg = new DataGrid();
		int cId = (int)((System.Data.[b]DataRowView[/b])e.Item.DataItem)["cId"];

		WebSiteData wsd = new WebSiteData();
		dg.DataSource = wsd.GetCategories(cId);
		dg.DataBind();

		e.Item.Cells[2].Controls.Add(dg);
	}

}
```

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

## #9 — DavidB, 2004-07-11T18:07Z

Får samma fel igen :(

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

## #10 — DavidB, 2004-07-14T14:21Z

Okej. fick det att fungera med följande kod:

```
int cId = [B]Convert.ToInt32([/B]((System.Data.DataRowView)e.Item.DataItem)["cId"][b])[/b];
```

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/106945-datagrid-onitemdatabound
