---
title: "problem med GridView"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/166890-problem-med-gridview"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Vinnaren"
published: "2007-12-03T13:02:29.000Z"
updated: "2007-12-14T20:24:36.000Z"
replies: 7
views: 546
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/166890-problem-med-gridview"
---

# problem med GridView

## #1 — Vinnaren, 2007-12-03T13:02Z

försöker göra en grindView, men vet inte redigt hur jag ska namnge kolumnerna.

har följande kod:

```
            <asp:GridView ID="ugMembers" CssClass="admin_membersList" runat="server" AutoGenerateColumns="False">
                <Columns>                    
                    <asp:BoundField DataField="UserName" HeaderText="Anv&#228;ndarnamn" />
                    <asp:BoundField HeaderText="Titel" NullDisplayText="Saknas" />
                    <asp:BoundField HeaderText="Blogg" />
                    <asp:CommandField EditText="Visa" SelectText="Visa" ShowSelectButton="True" />
                    <asp:CommandField EditText="&#196;ndra" ShowEditButton="True" />
                </Columns>
            </asp:GridView>
```

 

Denna ska jag skriva ut mha C#

```
        if (Page.User.IsInRole("siteAdmin"))
        {
            UserGrid.AutoGenerateDeleteButton = true;
            UserGrid.AutoGenerateEditButton = true;
            UserGrid.AutoGenerateSelectButton = true;
        }
        else if (Page.User.IsInRole("bloggAdmin"))
        {
            UserGrid.AutoGenerateDeleteButton = true;
        }
        else
        {
        }
```

 

Hur löser man detta??

Tacksam för all hjälp   :stud

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

## #2 — Travoni, 2007-12-03T13:18Z

i Page_Load:

```
if (Page.User.IsInRole("siteAdmin"))
        {
            ugMembers.AutoGenerateDeleteButton = true;
            ugMembers.AutoGenerateEditButton = true;
            ugMembers.AutoGenerateSelectButton = true;
        }
        else if (Page.User.IsInRole("bloggAdmin"))
        {
            ugMembers.AutoGenerateDeleteButton = true;
        }
        else
        {
        }
```

...eller?

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

## #3 — Vinnaren, 2007-12-03T13:20Z

mja, jag vill ersätta 

```
  <asp:GridView ID="ugMembers" CssClass="admin_membersList" runat="server" AutoGenerateColumns="False">
[B]                <Columns>                    
                    <asp:BoundField DataField="UserName" HeaderText="Användarnamn" />
                    <asp:BoundField HeaderText="Titel" NullDisplayText="Saknas" />
                    <asp:BoundField HeaderText="Blogg" />
                    <asp:CommandField EditText="Visa" SelectText="Visa" ShowSelectButton="True" />
                    <asp:CommandField EditText="Ändra" ShowEditButton="True" />
                </Columns>[/B]
            </asp:GridView>
```

 

med:

```
asp:GridView ID="ugMembers" CssClass="admin_membersList" runat="server" AutoGenerateColumns="False">
</asp:GridView>

        if (Page.User.IsInRole("siteAdmin"))
        {
            UserGrid.AutoGenerateDeleteButton = true;
            UserGrid.AutoGenerateEditButton = true;
            UserGrid.AutoGenerateSelectButton = true;
        }
        else if (Page.User.IsInRole("bloggAdmin"))
        {
            UserGrid.AutoGenerateDeleteButton = true;
        }
        else
        {
        }
```

 

Jag vill alltså skriva ut och koppla ihop kolumnerna i C# koden

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

## #4 — Vinnaren, 2007-12-03T13:44Z

löste det med:

```
        BoundField bf = new BoundField();
        BoundField bf2 = new BoundField();
        BoundField bf3 = new BoundField();
        
        bf.DataField = "UserName";
        bf.HeaderText = "Användarnamn";
        UserGrid.Columns.Add(bf);

        bf2.DataField = "";
        bf2.HeaderText = "Behörighet";
        UserGrid.Columns.Add(bf2);

        if (Page.User.IsInRole("siteAdmin"))
        {
            bf3.DataField = "";
            bf3.HeaderText = "Blogg";
            UserGrid.Columns.Add(bf3);

            UserGrid.AutoGenerateDeleteButton = true;
            UserGrid.AutoGenerateEditButton = true;
            UserGrid.AutoGenerateSelectButton = true;

        }
        else if (Page.User.IsInRole("bloggAdmin"))
        {
            UserGrid.AutoGenerateDeleteButton = true;
        }
```

 

men hur gör man så att delete, select, edit  länkarna hamnar till höger, nu hamnar de till vänster.   :q

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

## #5 — Vinnaren, 2007-12-03T19:06Z

hur får man delete att fungera??
får felmeddelandet:
System.Web.HttpException: The GridView 'ugMembers' fired event RowDeleting which wasn't handled.

Har koden

```
{
        GridView UserGrid = (GridView)mvMembers.Controls[1].FindControl("ugMembers");

        UserGrid.RowStyle.CssClass = "";
        UserGrid.AlternatingRowStyle.CssClass = "oddRow";

        // gör så att inte tabellen växer på bredden
        if (!IsPostBack)
        {
            // Bygger upp GrindView:n
            BoundField bf = new BoundField();
            BoundField bf2 = new BoundField();
            BoundField bf3 = new BoundField();

            bf.DataField = "UserName";
            bf.HeaderText = "Användarnamn";
            UserGrid.Columns.Add(bf);

            bf2.DataField = "";
            bf2.HeaderText = "Behörighet";
            UserGrid.Columns.Add(bf2);

            UserGrid.AllowPaging = true;
            UserGrid.EmptyDataText = "Det finns inga användare att visa";

            // Kontrollerar användarens rättighet
            if (Page.User.IsInRole("siteAdmin"))
            {
                lblHeader.Text = "Samtliga medlemmar";

                bf3.DataField = "";
                bf3.HeaderText = "Blogg";
                UserGrid.Columns.Add(bf3);

                UserGrid.AutoGenerateDeleteButton = true;
                UserGrid.AutoGenerateEditButton = true;
                UserGrid.AutoGenerateSelectButton = true;
            }
            else if (Page.User.IsInRole("bloggAdmin"))
            {
                lblHeader.Text = "Mina skribenter";

                UserGrid.AutoGenerateDeleteButton = true;
            }
            else
            {
                lblHeader.Text = "Mina medarbetare";
            }
        UserGrid.RowDeleting += new GridViewDeleteEventHandler(this.ugMembers_RowDeleting);

        UserGrid.DataSource = Membership.GetAllUsers();
        UserGrid.DataBind();
}

    protected void ugMembers_RowDeleting(Object sender, GridViewDeleteEventArgs e)
    {
        GridView UserGrid = (GridView)sender;

        if (UserGrid.Rows.Count <= 1)
        {

            e.Cancel = true;

        }
    }
```

 

Hur löser jag detta??

Tacksam för all hjälp   :stud

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

## #6 — Vinnaren, 2007-12-03T20:23Z

har fått den att fungera hyffsat, men ej ok.

har följande

```
    protected void ugMembers_RowDeleting(Object sender, GridViewDeleteEventArgs e)
    {
        GridView UserGrid = (GridView)sender;

        string userName = UserGrid.SelectedRow.Cells[1].Text;

        lblMsg.Text = "ta bort" + userName;
}
```

När jag klickar på DELETE får jag följande:
Object reference not set to an instance of an object.

på:
string userName = UserGrid.SelectedRow.Cells\[1\].Text;

hur löser jag detta??

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

## #7 — Vinnaren, 2007-12-04T15:47Z

det löste sig efter lite googlande   :bla  (y)   Hade glömt att ange vilket event som var vilket i gindviewen   :P

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

## #8 — Vinnaren, 2007-12-14T20:24Z

fått problem med gridviewn igen  :OO 

```
            <asp:GridView 
                CssClass="admin_comentList" 
                ID="gvComent"  
                AllowPaging="True" 
                AlternatingRowStyle-CssClass="oddRow"                
                runat="server" 
                AutoGenerateColumns="False" 
                DataKeyNames="comID" 
                DataSourceID="ShowCommentObjectDataSource" 
                EmptyDataText="Kommentarer saknas." 
                OnRowCommand="gvComent_RowCommand" 
                GridLines="Vertical" 
                PageSize="25">
                
                <Columns>
                    <asp:BoundField HeaderText="Namn" DataField="Name" />
                    <asp:BoundField HeaderText="Datum" DataField="Date" />
                    <asp:BoundField HeaderText="Rubrik" DataField="Header" />
                    <asp:BoundField HeaderText="Blogg" DataField="bloggName" />
              </Columns>
            </asp:GridView>
```

 

Beroende på vilken behörighet man har på sidan så är det inte alltid DataField="bloggName" returneras till gridviewn. De gånger den inte finns i SELECT-satsen kraschar sidan, hur löser man detta? returneras den inte ska den inte visas

Tacksam för all hjälp  :stud

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/166890-problem-med-gridview
