Avatar billede finger Nybegynder
24. oktober 2002 - 12:08 Der er 1 løsning

OnItemCommand og OnSortCommand i datagrid

Er det ikke muligt at adskille OnItemCommand og OnSortCommand i et datagrid?

Jeg har et datagrid hvor jeg vil kunne lave mange forskellige ting i. datagrid'et indeholder 8 kolonner.
1.: Jeg vil kunne sortere rækkerne
2.: jeg vil kunne lave paging
3.: Jeg vil kunne klikke på et enkelt felt (ikke hele rækken!) og kunne identificere hvilket felt jeg klikker på + selvfølgelig kunne lave en metoden til behandling af dette.

Jeg kan sagtens lave alle tre ting hver for sig så det virker fint. Mit problem er at når jeg forsøger at lægge sortering og det med de enkelte felter sammen, så koliderer det. Den tager klik på sortering (øverste række) som et klik på et enkelt felt og sorterer dermed ikke. dvs selvom jeg klikker på den øverste række (hvilket skulle resultere i sortering) så kalder den alligevel EmneValgt metoden.

Jeg er grøn i ASP.NET så andre/bedre løsninger end min er meget velkomne. Her er noget kode:

<asp:datagrid id="DataGrid1" AutoGenerateColumns="False" BorderStyle="None" ToolTip="Projekter du deltager i" BorderColor="#DEBA84" BorderWidth="1px" CellPadding="3" BackColor="#DEBA84" runat="server" CellSpacing="2" AllowSorting="True" PageSize="10" OnPageIndexChanged="GridPageChange" AllowPaging="True" HorizontalAlign="Center" OnItemCommand="EmneValgt" OnSortCommand="SortColumn">
/snip*/

<Columns>
<asp:ButtonColumn DataTextField="ProjektID" ButtonType="PushButton" HeaderText="ProjektID" SortExpression="ProjektID" CommandName="Projekt" />

<asp:BoundColumn DataField="Projektnavn" HeaderText="Projektnavn" SortExpression="Projektnavn" />

<asp:BoundColumn DataField="Status" HeaderText="Status" SortExpression="Status" />

<asp:BoundColumn DataField="Firmanavn" HeaderText="Firmanavn" SortExpression="Firmanavn" />

<asp:BoundColumn DataField="Antal opgaver" HeaderText="Antal opgaver" SortExpression="Antal opgaver" />

<asp:BoundColumn DataField="Nye opgaver" HeaderText="Nye opgaver" SortExpression="Nye opgaver" />

<asp:ButtonColumn DataTextField="Filer" HeaderText="Filer" SortExpression="Filer" CommandName="Filer" />

<asp:ButtonColumn DataTextField="Tilknyttede personer" HeaderText="Tilknyttede personer" SortExpression="Tilknyttede personer" CommandName="Personer" />
</Columns>
</asp:datagrid>



private void EmneValgt(object sender, DataGridCommandEventArgs e)
{
Response.Redirect("http://www.hotmail.com");
}


private void SortColumn(object sender, DataGridSortCommandEventArgs e)
{
strViewString = e.SortExpression;
HentProjekterTilknyttetPerson();
}
Avatar billede finger Nybegynder
24. oktober 2002 - 12:40 #1
hejsa.

jeg fandt selv ud af det. eneste ændring var at der skulle testes på hvilken knap der afsendte eventen.:

private void EmneValgt(object sender, DataGridCommandEventArgs e)
    {
   
    if (((LinkButton)e.CommandSource).CommandName == "Projekt")
    {
    Response.Redirect("http://www.troels.dk");
    }
    if (((LinkButton)e.CommandSource).CommandName == "Filer")
    {
    Response.Redirect("http://www.hotmail.com");
    }
    if (((LinkButton)e.CommandSource).CommandName == "Personer")
    {
    Response.Redirect("http://www.lyngbyes.dk");
    }
    else{}
   
    }
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