---
title: "Problem med FindControl och ItemTemplate"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/134646-problem-med-findcontrol-och-itemtemplate"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "aleborg"
published: "2005-09-22T16:16:27.000Z"
updated: "2005-09-22T20:05:26.000Z"
replies: 3
views: 443
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/134646-problem-med-findcontrol-och-itemtemplate"
---

# Problem med FindControl och ItemTemplate

## #1 — aleborg, 2005-09-22T16:16Z

Jag har en Datagrid som heter DGUsers, i den finns:

```
<asp:TemplateColumn HeaderText="Read" ItemStyle-Width="50px">
	<ItemTemplate>
		<asp:CheckBoxList ID=chkRead Runat=server RepeatLayout="Flow" RepeatDirection="Horizontal" DataTextField='<%# DataBinder.Eval(Container.DataItem, "Read") %>' DataValueField='<%# DataBinder.Eval(Container.DataItem, "Read") %>' AutoPostBack="False">
			<asp:ListItem Value=""></asp:ListItem>
		</asp:CheckBoxList>
	</ItemTemplate>
</asp:TemplateColumn>
```

i cs har jag 

```
		private void DGUsers_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
		{
			Response.Write(((CheckBoxList)e.Item.FindControl("chkRead")).DataValueField);
		}
```

men jag får felet System.NullReferenceException: Object reference not set to an instance of an object.
Det verkar som om chkRead inte kan hittas, vad har jag missat?

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

## #2 — Dino, 2005-09-22T16:22Z

Kanske behöver kolla template type.

```
if(e.Item.ItemType == ListItemType.Item)
{
   ...
}
```

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

## #3 — emission, 2005-09-22T16:28Z

Du har missat att ItemDataBound körs även för Header etc.. Du måste kolla ItemType. Dessutom är det vettigt att använda typomvandling med "as", eftersom du kan testa om det blev rätt enkelt, och dessutom är det snabbare.

```
private void DGUsers_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
	if (e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
	{
		CheckBoxList chkRead=e.Item.FindControl("chkRead") as CheckBoxList;
		if (chkRead!=null)
		{
			Response.Write(chkRead.DataValueField);
		}
	}
}
```

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

## #4 — aleborg, 2005-09-22T20:05Z

Tack!
Självklart har jag gjort det på alla andra ställen utom det här   :r

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/134646-problem-med-findcontrol-och-itemtemplate
