Avatar billede ihtezaz Praktikant
22. oktober 2004 - 09:15 Der er 6 kommentarer og
1 løsning

mulighed for at lave select command på datagrid, hvor man ønsker

Hej

Er det muligt, kun at lave select command i de rækker man selv ønsker i en datagrid. jeg har en datagrid hvor jeg i hvert række har en select command, problemmet er at ikke alle række skal vise noget når der trykkes på  select, og derfor skal select kun være på de rækker der skal vise noget.

På forhånd tak
Avatar billede snepnet Nybegynder
22. oktober 2004 - 11:04 #1
det nemmeste er nok hvis du bare sørger for at abbonerer på ItemDataBound-eventet, og i implementering af den sikrer dig, at selectknappen er visible=false når den ikke giver mening - baseret på det data der bindes på det aktuelle item.
mvh
Avatar billede ihtezaz Praktikant
22. oktober 2004 - 12:49 #2
Hej snepnet

Ok, dvs. jeg løber min datagrid igennem og søger efter om betingelsen er opfyldt, og er den det så gøre seleknappen visible for den række. Hvordan er det lige jeg får fat i min selectknap fra code-behind ?
Avatar billede snepnet Nybegynder
22. oktober 2004 - 13:15 #3
det med at løbe det igennem... det er sådan set det du får "foræret" ved at abbonnere på eventet :

private void grid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
    if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        // select-knappen - hvis du bare har indsat sådan en:
        LinkButton selectButton = (LinkButton)e.Item.Cells[0].Controls[0];
    }
}

nu virker det her så på indexering - altså select-knappen skal ligge i første kolonne.. du kan lige se en template også :

<asp:DataGrid id="grid" runat="server">
    <Columns>
        <asp:ButtonColumn Text="Select" CommandName="Select"></asp:ButtonColumn>
    </Columns>
</asp:DataGrid></P>

Og det med at sikre at du får kørt metoden (altså sikre at du abbonnerer på eventet) kan du angive i din initialisering :
grid.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.grid_ItemDataBound);

// det vil blive lagt i initializecomponent hvis du bruger vs og laden den generere koden (altså ved at se properties på griddet, klikke på det lille lyn, og dobbeltklikke på ItemDataBound.... så skrive vs koden).

mvh
Avatar billede ihtezaz Praktikant
22. oktober 2004 - 13:34 #4
ok, og betingelsen for at selectknappen skal være der kan jeg så skriv før initialiseringen af LinkButton ?
Avatar billede snepnet Nybegynder
22. oktober 2004 - 14:05 #5
Du kan jo gøre sådan her :

if(...)
  ((LinkButton)e.Item.Cells[0].Controls[0]).Visible = false;
Avatar billede ihtezaz Praktikant
22. oktober 2004 - 14:21 #6
perfekt snepnet...du er en guttermand, smid et svar
Avatar billede snepnet Nybegynder
22. oktober 2004 - 14:23 #7
et svar skal du få :o)
mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester