or
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="List.aspx.cs" Inherits="Quasar.WebUI.Customers.Customers.List" %><asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server"> <title>Quasar | CRM - Customers List</title></asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <telerik:RadAjaxLoadingPanel ID="ListRadAjaxLoadingPanel" runat="server" Skin="Default" /> <telerik:RadAjaxManager ID="ListRadAjaxManager" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="ListGrid"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="ListGrid" LoadingPanelID="ListRadAjaxLoadingPanel" UpdatePanelHeight="" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadWindowManager ID="ListRadWindowManager" runat="server" /> <div class="findField"> <asp:Label ID="FindFieldLabel" runat="server" AssociatedControlID="FindFieldTextBox">Customer :</asp:Label> <telerik:RadTextBox ID="FindFieldTextBox" runat="server" EmptyMessage="(empty)" MaxLength="50" Columns="50" SelectionOnFocus="SelectAll" ToolTip="Find Customer"></telerik:RadTextBox> <telerik:RadButton ID="FindButton" runat="server" Icon-PrimaryIconUrl="~/Images/Find.png" Text="Find" Width="75px" onclick="FindButton_Click"> </telerik:RadButton> </div> <telerik:RadGrid ID="ListGrid" runat="server" AllowFilteringByColumn="True" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" GridLines="None" ShowStatusBar="True" ShowGroupPanel="True" EnableLinqExpressions="false" onneeddatasource="ListGrid_NeedDataSource" onitemcommand="ListGrid_ItemCommand"> <ClientSettings AllowColumnsReorder="True" ReorderColumnsOnClient="True" AllowDragToGroup="True"> <Selecting AllowRowSelect="False" /> </ClientSettings> <GroupingSettings CaseSensitive="false" /> <MasterTableView DataKeyNames="CustomerId" CommandItemDisplay="Top"> <CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings> <RowIndicatorColumn> <HeaderStyle Width="20px"></HeaderStyle> </RowIndicatorColumn> <ExpandCollapseColumn> <HeaderStyle Width="20px"></HeaderStyle> </ExpandCollapseColumn> <NestedViewSettings> <ParentTableRelation> <telerik:GridRelationFields DetailKeyField="ContactId" MasterKeyField="CustomerId" /> <telerik:GridRelationFields DetailKeyField="AddressId" MasterKeyField="CustomerId" /> </ParentTableRelation> </NestedViewSettings> <NestedViewTemplate> <asp:Panel runat="server" ID="InnerContainer" CssClass="viewWrap"> <telerik:RadTabStrip runat="server" ID="CustomersTabStrip" MultiPageID="CustomersMultipage" SelectedIndex="0"> <Tabs> <telerik:RadTab runat="server" Text="Contacts" PageViewID="ContactsPageView"> </telerik:RadTab> <telerik:RadTab runat="server" Text="Addresses" PageViewID="AddressesPageView"> </telerik:RadTab> </Tabs> </telerik:RadTabStrip> <telerik:RadMultiPage runat="server" ID="CustomersMultipage" SelectedIndex="0" RenderSelectedPageOnly="false"> <telerik:RadPageView runat="server" ID="ContactsPageView"> <telerik:RadGrid ID="ContactsGrid" runat="server" AllowSorting="false" AllowFilteringByColumn="false" PageSize="5" AllowPaging="true" AutoGenerateColumns="False" GridLines="None" onneeddatasource="ContactsGrid_NeedDataSource"> <ClientSettings AllowColumnsReorder="True" ReorderColumnsOnClient="True" AllowDragToGroup="True"> <Selecting AllowRowSelect="True" /> </ClientSettings> <MasterTableView DataKeyNames="ContactId"> <Columns> <telerik:GridBoundColumn DataField="ContactId" HeaderText="Id" UniqueName="ContactId" Visible="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Full Name" DataField="FullName" UniqueName="FullName"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Position" DataField="Position" UniqueName="Position"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Contact Type" DataField="ContactType.Description" UniqueName="ContactType"> </telerik:GridBoundColumn> <telerik:GridHyperLinkColumn DataNavigateUrlFields="Email" DataNavigateUrlFormatString="mailto:{0}" DataTextField="Email" HeaderText="Email" UniqueName="Email" Groupable="false" AllowFiltering="false"> </telerik:GridHyperLinkColumn> <telerik:GridBoundColumn HeaderText="Phone" DataField="Phone" UniqueName="Phone"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Mobile" DataField="Mobile" UniqueName="Mobile"> </telerik:GridBoundColumn> </Columns> </MasterTableView> </telerik:RadGrid> </telerik:RadPageView> <telerik:RadPageView runat="server" ID="AddressesPageView"> <telerik:RadGrid ID="AddressesGrid" runat="server" AllowSorting="false" AllowFilteringByColumn="false" PageSize="5" AllowPaging="true" AutoGenerateColumns="False" GridLines="None" onneeddatasource="AddressesGrid_NeedDataSource"> <ClientSettings AllowColumnsReorder="True" ReorderColumnsOnClient="True" AllowDragToGroup="True"> <Selecting AllowRowSelect="True" /> </ClientSettings> <MasterTableView DataKeyNames="AddressId"> <Columns> <telerik:GridBoundColumn DataField="AddressId" HeaderText="Id" UniqueName="AddressId" Visible="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Address Type" DataField="AddressType" UniqueName="AddressType"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Full Address" DataField="FullAddress" UniqueName="FullAddress"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Zip Code" DataField="ZipCode" UniqueName="ZipCode"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="City" DataField="City" UniqueName="City"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Province" DataField="Province" UniqueName="Province"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Country" DataField="Country" UniqueName="Country"> </telerik:GridBoundColumn> </Columns> </MasterTableView> </telerik:RadGrid> </telerik:RadPageView> </telerik:RadMultiPage> </asp:Panel> </NestedViewTemplate> <Columns> <telerik:GridButtonColumn ButtonType="ImageButton" Reorderable="False" Resizable="False" ShowFilterIcon="False" ShowSortIcon="False" UniqueName="EditButton" ImageUrl="~/Images/Edit.png" CommandName="Edit"> <ItemStyle Width="20px" HorizontalAlign="Center" VerticalAlign="Middle" /> </telerik:GridButtonColumn> <telerik:GridImageColumn AllowFiltering="False" AllowSorting="False" DataAlternateTextField="Name" DataImageUrlFields="Logo" DataImageUrlFormatString="~/Images/Customers/{0}" Groupable="False" HeaderText="Logo" ImageHeight="64px" ImageWidth="64px" ShowSortIcon="False" UniqueName="Logo" ItemStyle-Width="75px"> <ItemStyle Width="75px" /> </telerik:GridImageColumn> <telerik:GridBoundColumn DataField="CustomerId" HeaderText="Id" UniqueName="CustomerId" Visible="false" AllowFiltering="False"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Name" HeaderText="Name" UniqueName="Name" AutoPostBackOnFilter="true" CurrentFilterFunction="Contains"> </telerik:GridBoundColumn> <telerik:GridHyperLinkColumn DataNavigateUrlFields="Web" DataNavigateUrlFormatString="{0}" DataTextField="Web" HeaderText="Web" UniqueName="Web" Target="_blank" Groupable="false" AllowFiltering="false"> </telerik:GridHyperLinkColumn> <telerik:GridBoundColumn DataField="Group.Name" HeaderText="Group" UniqueName="Group" AutoPostBackOnFilter="true" CurrentFilterFunction="Contains"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="AccountManager.FullName" HeaderText="Acct. Manager" UniqueName="AccountManager" AutoPostBackOnFilter="true" CurrentFilterFunction="Contains"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="SIC.Description" HeaderText="SIC" UniqueName="SIC" AutoPostBackOnFilter="true" CurrentFilterFunction="Contains"> </telerik:GridBoundColumn> <telerik:GridCheckBoxColumn DataField="IsProspect" HeaderText="Prospect" UniqueName="IsProspect" AutoPostBackOnFilter="true" CurrentFilterFunction="EqualTo"> </telerik:GridCheckBoxColumn> <telerik:GridButtonColumn ButtonType="ImageButton" Reorderable="False" Resizable="False" ShowFilterIcon="False" ShowSortIcon="False" UniqueName="DeleteButton" ImageUrl="~/Images/Delete.png" CommandName="Delete" ConfirmDialogType="RadWindow" ConfirmText="Are you sure you want to delete this record?" ConfirmTitle="Delete record..." ConfirmDialogHeight="130px"> <ItemStyle Width="20px" HorizontalAlign="Center" VerticalAlign="Middle" /> </telerik:GridButtonColumn> </Columns> </MasterTableView> <PagerStyle Mode="NextPrevAndNumeric" Position="Bottom" /> <HeaderContextMenu EnableImageSprites="True" CssClass="GridContextMenu GridContextMenu_Default"></HeaderContextMenu> </telerik:RadGrid></asp:Content>#region Binding// Bind main gridprotected void ListGrid_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e){ ListGrid.DataSource = BindControls();}protected IEnumerable<Customer> BindControls(){ var customers = customersRepository.GetAllCustomers(); return customers;}// Bind contacts gridprotected void ContactsGrid_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e){ (sender as RadGrid).DataSource = BindContactsControls();}protected IEnumerable<Contact> BindContactsControls(){ var contacts = contactsRepository.GetContactsByCustomer(System.Convert.ToInt32(CurrentRecordId)); return contacts;}// Bind addresses gridprotected void AddressesGrid_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e){ (sender as RadGrid).DataSource = BindAddressesControls();}protected IEnumerable<Address> BindAddressesControls(){ var addresses = addressesRepository.GetAddressesByCustomer(System.Convert.ToInt32(CurrentRecordId)); return addresses;}#endregionusing System.Linq;using System.Transactions;using System.Data;namespace Quasar.Repository{ public class CustomersRepository { // Create data context private QuasarEntities entities = new QuasarEntities(); // Retrieve all Customers public IQueryable<Customer> GetAllCustomers() { return entities.Customers.OrderBy(o => o.Name); } // Retrieve a Customer by Id public Customer GetCustomer(int id) { return entities.Customers.FirstOrDefault(d => d.CustomerId == id); } // Add Customer public int Add(Customer customer) { using (TransactionScope transaction = new TransactionScope()) { try { entities.Customers.AddObject(customer); entities.SaveChanges(); // Commit Transaction transaction.Complete(); return customer.CustomerId; } catch { return 0; } } } // Delete Customer public bool Delete(Customer customer) { using (TransactionScope transaction = new TransactionScope()) { try { // Delete Customer and childs entities.Customers.DeleteObject(customer); entities.SaveChanges(); // Commit Transaction transaction.Complete(); return true; } catch { return false; } } } // Persistence public bool Save() { using (TransactionScope transaction = new TransactionScope()) { try { entities.SaveChanges(); // Commit Transaction transaction.Complete(); return true; } catch { return false; } } } }}if
(e.Item is GridEditFormItem && e.Item.IsInEditMode)
{
GridEditFormItem item = (GridEditFormItem)e.Item;
GridEditableItem editedItem = e.Item as GridEditableItem;
GridEditManager editMan = editedItem.EditManager;
GridDropDownListColumnEditor editor = editMan.GetColumnEditor("NumericGrade") as GridDropDownListColumnEditor;
DropDownList ddlist = editor.DropDownListControl;
|