webForumDet fria alternativet

problem med GridView

7 svar · 531 visningar · startad av Vinnaren

VinnarenMedlem sedan sep. 2005833 inlägg
#1

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

TravoniMedlem sedan okt. 20041 556 inlägg
#2

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?

VinnarenMedlem sedan sep. 2005833 inlägg
#3

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

VinnarenMedlem sedan sep. 2005833 inlägg
#4

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

VinnarenMedlem sedan sep. 2005833 inlägg
#5

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

VinnarenMedlem sedan sep. 2005833 inlägg
#6

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??

VinnarenMedlem sedan sep. 2005833 inlägg
#7

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

VinnarenMedlem sedan sep. 2005833 inlägg
#8

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

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)