hi i'm new in asp now i've got a problem how can i sort on name ? i don't find to do that this is my code asp and asp.cs ASP <%@ Page Title="Unknown" Language="C#" MasterPageFile="../Default.master" AutoEventWireup="true" CodeFile="IngeschrevenSpelersPerLocatie_Stap2.aspx.cs" Inherits="Admin_IngeschrevenSpelersPerLocatie_Stap2" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"> <asp:HiddenField ID="hfLocatieDatumId" runat="server" Value="" /> <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> <script type="text/javascript"> function ShowDialog() { OpenDlg("admin/WebGUI/SpelerInschrijvingDlg.aspx?Id=-1&LDId=" + document.getElementById('ContentPlaceHolder1_hfLocatieDatumId').value); } </script> </telerik:RadCodeBlock> <asp:UpdatePanel runat="server" ID="updatePanel1"> <ContentTemplate> <table cellpadding="0" cellspacing="0"> <tr> <td> <telerik:RadGrid ID="RadGrid1" runat="server" DataSourceID="ldsItems" AllowPaging="False" AllowSorting="True" AutoGenerateColumns="False" GridLines="None" PageSize="10" ShowFooter="true"> <MasterTableView DataSourceID="ldsItems" CommandItemDisplay="Top"> <RowIndicatorColumn> <HeaderStyle Width="20px"></HeaderStyle> </RowIndicatorColumn> <ExpandCollapseColumn> <HeaderStyle Width="20px"></HeaderStyle> </ExpandCollapseColumn> <Columns> <telerik:GridTemplateColumn HeaderText="Naam"> <ItemTemplate> <asp:Label ForeColor='<%# Eval("WinnaarColor") %>' Font-Bold='<%# Eval("IsWinnaar") %>' ID="RadLabelNaam" runat="server" Text='<%# FindMe.GetNameFromUser(Eval("UserId")) %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Nickname"> <ItemTemplate> <asp:Label ForeColor='<%# Eval("WinnaarColor") %>' Font-Bold='<%# Eval("IsWinnaar") %>' ID="RadLabelNickname" runat="server" Text='<%# FindMe.GetNicknameFromUser(Eval("UserId")) %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <%--<telerik:GridTemplateColumn HeaderText="GPwin"> <ItemTemplate> <asp:Label ForeColor='<%# Eval("WinnaarColor") %>' Font-Bold='<%# Eval("IsWinnaar") %>' ID="RadLabelBwin" runat="server" Text='<%# FindMe.GetBwinFromUser(Eval("UserId")) %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Datum ingeschreven"> <HeaderStyle Width="200" /> <ItemStyle Width="200" /> <ItemTemplate> <asp:Label ForeColor='<%# Eval("WinnaarColor") %>' Font-Bold='<%# Eval("IsWinnaar") %>' ID="RadLabelEmail" runat="server" Text='<%# Eval("DatumIngeschreven") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn>--%> <telerik:GridTemplateColumn HeaderText="Afwezig"> <HeaderStyle Width="100" /> <ItemStyle Width="100" /> <ItemTemplate> <asp:HiddenField ID="hfSpelerInschrijvingId" runat="server" Value='<%# Eval("Id") %>' /> <asp:HiddenField ID="hfUserId" runat="server" Value='<%# Eval("UserId") %>' /> <asp:CheckBox ID="cbAfwezig" AutoPostBack="true" runat="server" Checked='<%# Eval("Afwezig")==null ? false : Convert.ToBoolean(Eval("Afwezig")) %>' oncheckedchanged="cbAfwezig_CheckedChanged" Visible="true" /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn Aggregate="Count" FooterText="Aantal: " FooterStyle-HorizontalAlign="Left" HeaderText="Aanwezig"> <HeaderStyle Width="75" /> <ItemStyle Width="75" /> <ItemTemplate> <asp:CheckBox ID="cbAanwezig" AutoPostBack="true" runat="server" Checked='<%# Eval("Afwezig")==null ? false : !Convert.ToBoolean(Eval("Afwezig")) %>' oncheckedchanged="cbAanwezig_CheckedChanged" Visible="true" /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Ticket"> <HeaderStyle Width="75" /> <ItemStyle Width="75" /> <ItemTemplate> <asp:CheckBox ID="cbTicket" AutoPostBack="true" runat="server" Checked='<%# Eval("AlTicket") %>' oncheckedchanged="cbTicket_CheckedChanged" Visible="false" /> </ItemTemplate> </telerik:GridTemplateColumn> <%--<telerik:GridTemplateColumn> <ItemStyle HorizontalAlign="Left" /> <ItemTemplate> <asp:LinkButton ID="LinkButton1" runat="server" OnClientClick='<%# Eval("FldIdOfUser","OpenDlg(\"admin/WebGUI/NieuwsbrievenDlg.aspx?TypeId={0}&Type=Speler\"); return false;")%>'>E-mail versturen</asp:LinkButton> </ItemTemplate> </telerik:GridTemplateColumn>--%> </Columns> <CommandItemTemplate> <div style="padding: 5px 5px;"> <asp:LinkButton ID="lbAddNew" runat="server" OnClientClick="ShowDialog(); return false;"> <asp:Image AlternateText="Toevoegen" ID="Image1" ImageUrl="~/admin/images/AddRecord.gif" runat="server" style="border:0px;vertical-align:middle;" /> Toevoegen Speler </asp:LinkButton> </div> </CommandItemTemplate> </MasterTableView> <ClientSettings> <Selecting AllowRowSelect="True" /> </ClientSettings> </telerik:RadGrid> </td> </tr> <asp:LinqDataSource ID="ldsItems" runat="server" ContextTypeName="BKFreerollDataContext" onselecting="ldsItems_Selecting" /> <asp:HiddenField ID="hfSelectedId" runat="server" Value="" /> </table> </ContentTemplate> </asp:UpdatePanel> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" runat="Server"> </asp:Content> Code (markup): ASP.CS using System;using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Telerik.Web.UI; using System.Web.Security; using System.Configuration; public partial class Admin_IngeschrevenSpelersPerLocatie_Stap2 : System.Web.UI.Page { // Variables private BKFreerollDataContext bkf = new BKFreerollDataContext(); private int iLocatieDatumId = -1; // Events protected void Page_Load(object sender, EventArgs e) { // QueryString iLocatieDatumId = Convert.ToInt32(Request["Id"]); // Check if (iLocatieDatumId > 0) { // Set field hfLocatieDatumId.Value = iLocatieDatumId.ToString(); // Database var locatiedatum = (from ld in bkf.LocatieDatums where ld.Id.Equals(iLocatieDatumId) select ld).SingleOrDefault(); // Set header title Header.Title = locatiedatum.Locatie.LocatieCategorie.Titel_nl + " - " + locatiedatum.Locatie.Titel + " | " + String.Format("{0:dd-MM-yyyy}", locatiedatum.Datum) + " (" + locatiedatum.Aantal_plekken + " plekken) | " + ConfigurationManager.AppSettings["Website_Titel"]; } } protected void cbAfwezig_CheckedChanged(object sender, EventArgs e) { try { // Get clicked row GridDataItem clickedItem = (GridDataItem)(sender as CheckBox).NamingContainer; // Get row field information HiddenField hfSpelerInschrijvingId = (HiddenField)clickedItem.FindControl("hfSpelerInschrijvingId"); HiddenField hfUserId = (HiddenField)clickedItem.FindControl("hfUserId"); CheckBox cbAfwezig = (CheckBox)clickedItem.FindControl("cbAfwezig"); // Check if spelerinschrijvigid has been found if (hfSpelerInschrijvingId != null) { string strId = hfSpelerInschrijvingId.Value; int iId = 0; Int32.TryParse(strId, out iId); if (iId > 0) { // Get spelerinschrijving item SpelerInschrijving item = (from sp in bkf.SpelerInschrijvings where sp.Id.Equals(Convert.ToInt32(hfSpelerInschrijvingId.Value)) select sp).SingleOrDefault(); // Error handling if (item == null) { throw new ArgumentException("Object is niet gevonden!"); } // Ban functionality - Uncheck if (!cbAfwezig.Checked) { IsAbsentThatCreatedBan(Convert.ToInt32(hfSpelerInschrijvingId.Value), hfUserId.Value); } // Change afwezig field item.Afwezig = cbAfwezig.Checked; // Save afwezig field bkf.SubmitChanges(); // Ban functionality - Check if (cbAfwezig.Checked) { IsSecondAbsentThenBan(Convert.ToInt32(hfSpelerInschrijvingId.Value), hfUserId.Value); } // Refresh //RadGrid1.DataBind(); } } } catch(Exception ex) { LogExceptions.Log("admin/WebGUI/IngeschrevenSpelersPerLocatie_Stap2.aspx.cs", Request.RawUrl, "cbAfwezig_CheckedChanged", LogExceptions.GetFullExceptionMessage(ex), HttpContext.Current.Request.UserHostAddress); } } protected void cbAanwezig_CheckedChanged(object sender, EventArgs e) { try { // Get clicked row GridDataItem clickedItem = (GridDataItem)(sender as CheckBox).NamingContainer; // Get row field information HiddenField hfSpelerInschrijvingId = (HiddenField)clickedItem.FindControl("hfSpelerInschrijvingId"); HiddenField hfUserId = (HiddenField)clickedItem.FindControl("hfUserId"); CheckBox cbAanwezig = (CheckBox)clickedItem.FindControl("cbAanwezig"); // Check if spelerinschrijvigid has been found if (hfSpelerInschrijvingId != null) { string strId = hfSpelerInschrijvingId.Value; int iId = 0; Int32.TryParse(strId, out iId); if (iId > 0) { // Get spelerinschrijving item SpelerInschrijving item = (from sp in bkf.SpelerInschrijvings where sp.Id.Equals(Convert.ToInt32(hfSpelerInschrijvingId.Value)) select sp).SingleOrDefault(); // Error handling if (item == null) { throw new ArgumentException("Object is niet gevonden!"); } // Ban functionality - Uncheck if (cbAanwezig.Checked) { IsAbsentThatCreatedBan(Convert.ToInt32(hfSpelerInschrijvingId.Value), hfUserId.Value); } // Change afwezig field item.Afwezig = !cbAanwezig.Checked; // Save afwezig field bkf.SubmitChanges(); // Refresh //RadGrid1.DataBind(); } } } catch (Exception ex) { LogExceptions.Log("admin/WebGUI/IngeschrevenSpelersPerLocatie_Stap2.aspx.cs", Request.RawUrl, "cbAanwezig_CheckedChanged", LogExceptions.GetFullExceptionMessage(ex), HttpContext.Current.Request.UserHostAddress); } } protected void cbTicket_CheckedChanged(object sender, EventArgs e) { try { // Get clicked row GridDataItem clickedItem = (GridDataItem)(sender as CheckBox).NamingContainer; // Get row field information HiddenField hfSpelerInschrijvingId = (HiddenField)clickedItem.FindControl("hfSpelerInschrijvingId"); HiddenField hfUserId = (HiddenField)clickedItem.FindControl("hfUserId"); CheckBox cbTicket = (CheckBox)clickedItem.FindControl("cbTicket"); // Check if spelerinschrijvigid has been found if (hfSpelerInschrijvingId != null) { string strId = hfSpelerInschrijvingId.Value; int iId = 0; Int32.TryParse(strId, out iId); if (iId > 0) { // Get spelerinschrijving item var speler = (from s in bkf.Spelers where s.UserId.Equals(new Guid(hfUserId.Value)) select s).SingleOrDefault(); if (speler != null) { speler.TicketReceived = cbTicket.Checked; bkf.SubmitChanges(); // Refresh //RadGrid1.DataBind(); } } } } catch (Exception ex) { LogExceptions.Log("admin/WebGUI/IngeschrevenSpelersPerLocatie_Stap2.aspx.cs", Request.RawUrl, "cbTicket_CheckedChanged", LogExceptions.GetFullExceptionMessage(ex), HttpContext.Current.Request.UserHostAddress); } } protected void ldsItems_Selecting(object sender, LinqDataSourceSelectEventArgs e) { e.Result = (from si in bkf.SpelerInschrijvings where si.LocatieDatumId.Equals(LocatieDatumId) orderby si.DatumIngeschreven select new { FldIdOfUser = FindMe.GetIdFromUser(si.UserId), si.Id, si.UserId, si.DatumIngeschreven, si.Afwezig, WinnaarColor = FindMe.GetSpelerWinnaarColor(si.UserId), IsWinnaar = FindMe.IsSpelerWinnaarVanTicket(si.UserId), AlTicket = FindMe.HeeftSpelerAlTicket(si.UserId) }); } // Functions private void IsSecondAbsentThenBan(int SpelerInschrijvingId, object UserId) { try { // Get speler (ban date) var resSpeler = (from s in bkf.Spelers where s.UserId.Equals(UserId) select s).SingleOrDefault(); // Initialize a LINQ var var resSpelerAfwezig = (from sp in bkf.SpelerInschrijvings select sp); // Check if this is the 2nd time, give the Speler a Ban Date, 7 days from his last Inschrijving if (resSpeler.BanDate.HasValue) { resSpelerAfwezig = (from sp in bkf.SpelerInschrijvings where sp.Afwezig.Equals(true) && sp.UserId.Equals(UserId) && sp.LocatieDatum.Datum > resSpeler.BanDate.Value select sp); } else { resSpelerAfwezig = (from sp in bkf.SpelerInschrijvings where sp.Afwezig.Equals(true) && sp.UserId.Equals(UserId) select sp); } // If it's an even number (only 2 actually) set the Ban date if (resSpelerAfwezig.Count() % 2 == 0) { // Check if this is the 2nd time, give the Speler a Ban Date, 7 days past the last Inschrijving var resSpelerInschrijving = (from sp in bkf.SpelerInschrijvings where sp.UserId.Equals(UserId) orderby sp.LocatieDatum.Datum descending select sp ).FirstOrDefault(); // Calculate ban untill DateTime dtLaatsteInschrijving = resSpelerInschrijving.LocatieDatum.Datum.GetValueOrDefault(); DateTime dtBanUntill = dtLaatsteInschrijving.AddDays(Convert.ToInt32(ConfigurationManager.AppSettings["Ban_Days"])); // Save Ban Date Speler speler = (from s in bkf.Spelers where s.UserId.Equals(UserId) select s).SingleOrDefault(); // Error handling if (speler == null) { throw new ArgumentException("Object is niet gevonden!"); } // Change Ban Date field speler.BanDate = dtBanUntill; // Save speler bkf.SubmitChanges(); } } catch (Exception ex) { LogExceptions.Log("admin/WebGUI/IngeschrevenSpelersPerLocatie_Stap2.aspx.cs", Request.RawUrl, "IsSecondAbsentThenBan", ex.Message, HttpContext.Current.Request.UserHostAddress); } } private void IsAbsentThatCreatedBan(int SpelerInschrijvingId, object UserId) { try { // Get speler (ban date) var resSpeler = (from s in bkf.Spelers where s.UserId.Equals(UserId) select s).SingleOrDefault(); // Check if the speler has a ban date if (!resSpeler.BanDate.HasValue) { // Speler doesn't have a ban date, so no worries return; } else { // Check if this absent date is the 1st or 2nd absent date of the ban-date var resSpelerAfwezig = (from sp in bkf.SpelerInschrijvings where sp.Afwezig.Equals(true) && sp.UserId.Equals(UserId) && sp.LocatieDatum.Datum < resSpeler.BanDate.Value orderby sp.LocatieDatum.Datum descending select sp); // Loop through int iCounter = 0; foreach (var spelerinschrijving in resSpelerAfwezig) { // When counter is smaller then 2 if (iCounter < 2) { // Check if this inschrijving is the one that is clicked if (spelerinschrijving.Id.Equals(SpelerInschrijvingId)) { // Reset the ban date to nothing Speler speler = (from s in bkf.Spelers where s.UserId.Equals(UserId) select s).SingleOrDefault(); // Error handling if (speler == null) { throw new ArgumentException("Object is niet gevonden!"); } // Change Ban Date field speler.BanDate = null; // Save speler bkf.SubmitChanges(); } } // Counter iCounter++; } } } catch (Exception ex) { LogExceptions.Log("admin/WebGUI/IngeschrevenSpelersPerLocatie_Stap2.aspx.cs", Request.RawUrl, "IsAbsentThatCreatedBan", ex.Message, HttpContext.Current.Request.UserHostAddress); } } // Snippets public int? LocatieDatumId { get { try { return Convert.ToInt32(hfLocatieDatumId.Value); } catch (Exception ex) { LogExceptions.Log("admin/WebGUI/IngeschrevenSpelersPerLocatie_Stap2.aspx.cs", Request.RawUrl, "LocatieDatumId", ex.Message, HttpContext.Current.Request.UserHostAddress); return null; } } set { hfLocatieDatumId.Value = value.ToString(); } } } Code (markup): thx
Oh My God! You can do sorting so many ways! It can some straight out of the database, you can do it in your business object, you can do it on the client side. But thats to much code to be looking thru for free. Sorry, man. Lolz.