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();
}
