---
title: "If sats i asp.net"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/147536-if-sats-i-asp-net"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "KrpSvedberg"
published: "2006-05-30T19:24:18.000Z"
updated: "2006-05-31T07:52:42.000Z"
replies: 5
views: 620
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/147536-if-sats-i-asp-net"
---

# If sats i asp.net

## #1 — KrpSvedberg, 2006-05-30T19:24Z

Jag har en repeater som visar nyheter, där det i vissa fall finns bild kopplad, och i vissa fall inte. Har försökt mig på en If sats, men får det icke att fungera.

```
<% if  Container.DataItem("refbildid") <> "" then %>
<img src='_downloadTest.aspx?id=<%# Container.DataItem("refbildid") %>' align=left width=200px>
<% else %>
&nbsp;
<% end if %>
```

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

## #2 — mozilla, 2006-05-30T19:51Z

asp 3.0 ajabaja... ;)

Den finaste lösningen är väl att lägga till en **OnItemDataBound** på repeatern och via CodeBehind göra en if-sats som sätter Visible = true/false på en asp:Image

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

## #3 — KrpSvedberg, 2006-05-30T20:10Z

Har aldrig använt varken **asp:Image** eller **OnItemDataBound**, så har chansat ganska friskt...

```
<asp:Image ID=imgRpt runat=server Visible=True ImageUrl='_downloadTest.aspx?id=<%# Container.DataItem("refbildid") %>'></asp:Image>
```

Detta fungerar inte. Han fattar inte att de e ett dynamiskt värde. Vad använder jag **OnItemDataBound** till?

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

## #4 — voigtann1, 2006-05-30T20:26Z

Sökte lite:
<http://www.developerfusion.co.uk/forums/thread/104299/#104299>

kanske hjälper dig... annars kom till skolan så kan vi se på det :p

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

## #5 — mozilla, 2006-05-30T21:14Z

Om du inte känner till varken asp:Image eller OnItemDataBound kanske du bör läsa igenom lite grundläggande [artiklar](http://www.asp.net/quickstart/aspnet/) eller böcker angående asp.net. Allting blir så mycket enklare när man kommer ur det hemska asp 3.0 träsket :e

Och som voigtann länkade till så kan det se ut ungefär så här: *(Visserligen i C#, men om du precis börjat med .net bör du byta för det är mycket trevligare(tycker jag... ;))*

```
<asp:Repater id="rptNews" OnItemDataBound="rptNews_ItemDataBound" runat="server">
  <ItemTemplate>
    <asp:Image id="imgRtp" runat="server" />
  </ItemTemplate>
</asp:Repeater>
```

och sedan i code-behind

```
protected void rptNews_ItemDataBound(object sender, RepeaterItemEventArgs e) {
  if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
    Image imgRpt = (Image)e.Item.FindControl("imgRpt");
    
    if ((string)((DataRowView)e.Item.DataItem)["refbildid"] != null) {
      imgRpt.ImageUrl = String.Format("_downloadTest.aspx?id={0}",(string)((DataRowView)e.Item.DataItem)["refbildid"]);
    } else {
      imgRpt.Visible = false;
    }
  }
}
```

Skrivet ur huvudet så med reservation för slarvfel. Samt att jag själv är ganska ny på asp.net... så någon mer erfaren får gärna rätta mig om jag har fel :stud

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

## #6 — KrpSvedberg, 2006-05-31T07:52Z

**Har försökt översätta till VB. Här är resultatet:**

```
Protected Sub rptNews_ItemDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs)
        If ((e.Item.ItemType = ListItemType.Item) _
                    OrElse (e.Item.ItemType = ListItemType.AlternatingItem)) Then
            Dim imgRpt As System.Web.UI.WebControls.Image = CType(e.Item.FindControl("imgRpt"), System.Web.UI.WebControls.Image)
            If (Not (CType(CType(e.Item.DataItem, DataRowView)("refbildid"), String)) Is Nothing) Then
                imgRpt.ImageUrl = String.Format("_downloadTest.aspx?id={0}", CType(CType(e.Item.DataItem, DataRowView)("refbildid"), String))
            Else
                imgRpt.Visible = False
            End If
        End If
End Sub
```

**Felmeddelande:**
Unable to cast object of type 'System.Data.Common.DbDataRecord' to type 'System.Data.DataRowView'.

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/147536-if-sats-i-asp-net
