---
title: "Loopa fram knappar! Unika variabler"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/146021-loopa-fram-knappar-unika-variabler"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Sjodahl"
published: "2006-04-25T08:31:51.000Z"
updated: "2006-04-25T15:44:33.000Z"
replies: 11
views: 432
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/146021-loopa-fram-knappar-unika-variabler"
---

# Loopa fram knappar! Unika variabler

## #1 — Sjodahl, 2006-04-25T08:31Z

Hej!

Det är så att jag läser ut lite data ifrån databasen just nu och jag vill för varje fält den hittar skall det skapas en ny knapp. Men vet inte riktigt hur jag skall köra med själva namnet på knappen hur jag skall loopa det.

```
        while (myReader.Read()) {

            Button [B]bButton1[/B]= new Button();
            bButton1.Text = (string)myReader.GetString(0);
            bButton1.Visible = true;
            Response.Write((string)myReader.GetString(0) + "</br>");

        }
```

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

## #2 — Dino, 2006-04-25T11:04Z

```
.aspx
<asp:repeater id="repData" runat="server">
   <itemtemplate>
      <asp:button id="btButton" text='<%# Eval("ditt_kolumn_namn") %>' runat="server" /><br/>
   </itemtemplate>
</asp:repeater>

.cs
repData.DataSource = cmd.ExecuteReader(CommandBehavior.CloseConnection); //cmd = OleDbCommand, SqlCommand eller vad du nu använder
repData.DataBind();
```

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

## #3 — Sjodahl, 2006-04-25T11:15Z

Tackar!

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

## #4 — Dino, 2006-04-25T11:19Z

Redigerar bort onitemdatabound, ser ut att vara lite överkurs i detta skedet. Byt ut ditt_kolumn_namn till kolumn namnet du tar ut från databasen.

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

## #5 — Sjodahl, 2006-04-25T11:21Z

DONE!  (y)

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

## #6 — Dino, 2006-04-25T11:28Z

Du behöver inte myReader.Read() utan binder datareadern direkt till repeatern.

```
SqlConnection conn = new SqlConnection("connectionString");
SqlCommand cmd = new SqlCommand("SELECT din_kloumn FROM din_tabell", conn);
repData.DataSource = cmd.ExecuteReader(CommandBehavior.CloseConnection); 
repData.DataBind();
```

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

## #7 — Sjodahl, 2006-04-25T11:29Z

> **Dino skrev:**
>
> Du behöver inte myReader.Read() utan binder datareadern direkt till repeatern.

Japp såg det var nog lite för het på gröten ;)

Hur blir det när jag klickar på knapparn sen då ?
Hur kommer jag åt "button_Click" typ? Eller tar man han om detta på något annat sätt?

När jag klickar på en som det är nu:

```
Invalid postback or callback argument.  Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page.  For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.  If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
```

Många funderingar ;)

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

## #8 — Dino, 2006-04-25T11:34Z

Vid knapp tryck gör du så här:

```
.aspx
<asp:Repeater id="repData" [B]OnItemCommand="repData_ItemCommand"[/B] runat="server">

.cs
void repData_ItemCommand(Object Sender, RepeaterCommandEventArgs e) 
{      
   Button bt =  e.CommandSource as Button;
   Response.Write(bt.Text);
}
```

 

Vad som sker är att knappens klick event bubblar upp till repeatern där det fångas i onitemcommand eventet.

Ett tips medan du lär dig är att titta i dokumentationen. Där hittar du det mesta.

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

## #9 — Sjodahl, 2006-04-25T11:40Z

Tack, skall ta en titt där lite oftare ;)

Men stötter fortfarande på följande fel:
**Invalid postback or callback argument.  Event validation is enabled using \<pages enableEventValidation="true"/\> in configuration or \<%@ Page EnableEventValidation="true" %\> in a page.  For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.  If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.**

Högst upp i filen har jag lagt till:

```
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="changeConfig.aspx.cs" Inherits="changeConfig" EnableEventValidation="true" %>
```

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

## #10 — Dino, 2006-04-25T11:59Z

<http://odetocode.com/Blogs/scott/search.aspx?q=Event+Validation&p=1>

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

## #11 — Sjodahl, 2006-04-25T13:13Z

ÄR detta det bästa sätta att loppa fram knappar på om man riskerar att det blir lite säkerhetsstrul?

Så det är Render funktionen jag skall skriva över: 

```
protected override void Render(HtmlTextWriter writer)
{
   ClientScript.RegisterForEventValidation(

         [B]Vad skall jag lägga här min repeater?[/B]
//       _recipeList.UniqueID,"4");

   base.Render(writer);
}
```

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

## #12 — Sjodahl, 2006-04-25T15:44Z

Kanske är det bättre att loppa fram länkar eller något annat istället?
Behöver ju inte vara en knapp, bara något man kan trycka på.

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/146021-loopa-fram-knappar-unika-variabler
