---
title: "Funderingar om GridView"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/157315-funderingar-om-gridview"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "saw"
published: "2007-02-18T13:22:53.000Z"
updated: "2007-02-19T17:41:04.000Z"
replies: 6
views: 481
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/157315-funderingar-om-gridview"
---

# Funderingar om GridView

## #1 — saw, 2007-02-18T13:22Z

I den övningsbok jag håller på med (Asp.net 2.0 steg för steg) så finns det 
en övning där man lätt kan assosiera till en varukorg. Med det i minnet så
ville jag beskriva följande.
DataList1 fylls upp med ett antal produkter, och en knapp för varje produkt
skickar produkten till en gridview.
Nu skulle jag (i första steget) vilja se till att det inte finns mer än en av varje
produktyp i gridview.
I steg två, så skall jag försöka att lägga till en textruta (det blir väll en 
templatefild), som vid första klicket ifrån datalist1 skall innehålla en etta.
För varje gång man klicka på produkten i datalist1, så skall templatefield
räknas upp, går detta?
Så här fyller jag gridviewn:

```
int nItemIndex = e.Item.ItemIndex;
        this.DataList1.SelectedIndex = nItemIndex;
        BindToInventory();//här hämtas data via en datatable
        DataTable dt = (DataTable)DataList1.DataSource;
        String strId=(dt.Rows[nItemIndex][0]).ToString();
        String strTitel =
            (dt.Rows[nItemIndex][1]).ToString();
        String strAuthorLastName =
            (dt.Rows[nItemIndex][2]).ToString();
        String strAuthorFirstName =
            (dt.Rows[nItemIndex][3]).ToString();
        String strstrTopic =
            (dt.Rows[nItemIndex][4]).ToString();
        String strPublicher =
            (dt.Rows[nItemIndex][5]).ToString();
        

                DataTable tableSelectedItems;
                tableSelectedItems =
                    (DataTable)Session["tableSelectedItems"];
                DataRow dr = tableSelectedItems.NewRow();
                dr[0] = strId;
                dr[1] = strTitel;
                dr[2] = strAuthorLastName;
                dr[3] = strAuthorFirstName;
                dr[4] = strstrTopic;
                dr[5] = strPublicher;
                tableSelectedItems.Rows.Add(dr);
                Session["tableSelectedItems"] = tableSelectedItems;
                this.GridView1.DataSource = tableSelectedItems;
                this.GridView1.DataBind();
```

Första frågan hur hindrar jag att lägga till en rad till om den redan finns i
gridviewn?

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

## #2 — emission, 2007-02-18T13:58Z

Det är inte GridView:en som har med det att göra, utan datakällan som du knyter till den. Med andra ord, kontrollera om tableSelectedItems innehåller en rad med samma id (mha av Select-metoden) innan du lägger till en ny rad.

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

## #3 — saw, 2007-02-18T14:17Z

Är det någonting så här du menar?

```
 if (Convert.ToInt32(tableSelectedItems.Columns[0])!= nItemIndex)
```

Jag får ett error att det inte går att omvandla...

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

## #4 — emission, 2007-02-18T19:37Z

> **emission skrev:**
>
> (mha av Select-metoden)

Använd Select på din datatable

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

## #5 — saw, 2007-02-18T20:01Z

Nu är vi inne på saker som jag aldrig har sysslat med tidigare. Skulle du vilja utvekla detta?

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

## #6 — emission, 2007-02-19T08:59Z

<http://www.developerfusion.co.uk/show/4703/2/>

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

## #7 — saw, 2007-02-19T17:41Z

Jag tyckte att jag hadde en bra början på det här men...
JAG gjorde ett litet försök så här:

```
string strExpr;
        string strText;

        DataRow[] foundRows;
        DataTable myTable;
        myTable = tableSelectedItems;
        strExpr = "ID=" + nItemIndex;
        foundRows = myTable.Select(strExpr);
        strText = null;

        for (int i = 0; i <= foundRows.GetUpperBound(0); i++)
        {
            for (int j = 0; j <= foundRows[i].ItemArray.GetUpperBound(0); j++)
            {
                strText = strText + foundRows[i][j].ToString() + "\t";
            }
            strText = strText + "\r\n";
            Label1.Text = strText;
        }
```

När jag hadde en träff, så skulle väll det synas i labelen?
JAG får aldrig ut någonting där.

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/157315-funderingar-om-gridview
