├── TesserisPro.TGrid ├── bin │ └── dummy.txt ├── Scripts │ ├── _references.js │ └── typings │ │ ├── extenders.d.ts │ │ ├── tgrid-angular-extension.d.ts │ │ ├── angularjs │ │ ├── angular-cookies.d.ts │ │ └── angular-sanitize.d.ts │ │ └── knockout.mapping │ │ └── knockout.mapping.d.ts ├── tslint.json ├── web.config ├── packages.config ├── angular │ └── AngularModuleTGrid.js ├── web.Debug.config ├── web.Release.config ├── license.js ├── SortDescriptor.ts ├── IFilterPopupViewModel.ts ├── IFooterViewModel.ts └── GroupHeaderDescriptor.ts ├── TesserisPro.TGrid.Web ├── Markdown │ ├── generalStyles.md │ ├── batchSizeOptions.md │ ├── currentPageOptions.md │ ├── firstLoadSizeOptions.md │ ├── groupHeaderTemplateOptions.md │ ├── columnProperties.md │ ├── dataGEnableGrouping.md │ ├── dataGEnableSorting.md │ ├── dataGEnableFiltering.md │ ├── dataGResizable.md │ ├── dataGWidth.md │ ├── dataGNotSized.md │ ├── enableSorting.md │ ├── enableGrouping.md │ ├── captureScroll.md │ ├── enableFiltering.md │ ├── pageSize.md │ ├── hideHeader.md │ ├── pageSlide.md │ ├── dataGViews.md │ ├── enablePaging.md │ ├── dataGFilterMember.md │ ├── dataGSortMember.md │ ├── enableVirtualScroll.md │ ├── enableCollapsing.md │ ├── dataGGroupMember.md │ ├── selectionMode.md │ ├── optionsColumns.md │ ├── dataGMember.md │ ├── itemsProvider.md │ ├── showDetailsOnSelection.md │ ├── rowClick.md │ ├── ready.md │ ├── gridSettings.md │ ├── pageSizeOptions.md │ ├── enablePagingOptions.md │ ├── hideHeaderOptions.md │ ├── enableSortingOptions.md │ ├── pageSlideOptions.md │ └── enableGroupingOptions.md ├── favicon.ico ├── Content │ ├── TGrid-0.1.2.zip │ ├── TGrid-0.1.zip │ ├── TGrid-0.2.1.zip │ ├── TGrid-0.2.2.zip │ ├── TGrid-0.2.3.zip │ ├── TGrid-0.2.5.zip │ ├── TGrid-0.2.7.zip │ ├── images │ │ ├── add.png │ │ ├── busy.gif │ │ ├── logo.jpg │ │ ├── delete.png │ │ ├── gears5.png │ │ ├── gears6.png │ │ ├── group.png │ │ ├── iphone.png │ │ ├── minus.png │ │ ├── tgrid.png │ │ ├── path32png.ico │ │ ├── tesseris.png │ │ ├── tesseris1.png │ │ ├── tgridSNS.png │ │ ├── logo_small.png │ │ ├── logo_small_1.png │ │ ├── logo_small_for_doc.jpg │ │ ├── picturesForGrid │ │ │ ├── truck1.png │ │ │ ├── truck10.jpg │ │ │ ├── truck11.jpg │ │ │ ├── truck12.png │ │ │ ├── truck13.png │ │ │ ├── truck14.png │ │ │ ├── truck15.png │ │ │ ├── truck16.png │ │ │ ├── truck17.png │ │ │ ├── truck18.png │ │ │ ├── truck3.jpg │ │ │ ├── truck4.png │ │ │ ├── truck5.png │ │ │ ├── truck6.png │ │ │ ├── truck7.png │ │ │ ├── truck8.png │ │ │ └── truck9.png │ │ └── imagesForDocs │ │ │ ├── dataGMember.jpg │ │ │ ├── columnGeneral.jpg │ │ │ ├── detailsTemplate.jpg │ │ │ ├── mobileTemplate.jpg │ │ │ ├── columnCellTemplate.jpg │ │ │ ├── columnHeaderTemplate.jpg │ │ │ ├── filterPopupTemplate.jpg │ │ │ ├── mobileTemplateGrouping.jpg │ │ │ └── columnCellDetailsTemplate.jpg │ ├── phonewithgrid.png │ ├── gridonmainpage.png │ ├── monitorwithgrid.png │ ├── phonewithgrid1.png │ ├── release.min.html │ ├── iframe.css │ ├── purchaseStyle.css │ ├── itemsOperations.css │ ├── license.txt │ └── dynamicReconfiguration.css ├── Global.asax ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.ttf │ └── glyphicons-halflings-regular.woff ├── Scripts │ ├── _references.js │ ├── highliterFix.js │ ├── iframe │ │ ├── IItemProvider.js │ │ ├── IFilterPopupViewModel.js │ │ ├── AngularModuleTGrid.js │ │ ├── FooterViewModel.js │ │ ├── IHtmlProvider.js │ │ ├── FooterDirective.js │ │ ├── KnockoutItemViewModel.js │ │ ├── FilterPopupViewModel.js │ │ ├── IFooterViewModel.js │ │ └── license.js │ ├── init.js │ └── Highlighter │ │ ├── shAutoloader.js │ │ ├── shBrushJScript.js │ │ └── shBrushXml.js ├── App_Start │ ├── FilterConfig.cs │ ├── BundleConfig.cs │ ├── WebApiConfig.cs │ └── RouteConfig.cs ├── Views │ └── Home │ │ ├── Knockout │ │ ├── CustomActionsOnRowClickHtml.cshtml │ │ ├── SimpleGridWithPercentHtml.cshtml │ │ ├── SimpleGridNotSizedColumnsHtml.cshtml │ │ ├── SimpleGridNotSizedColumnsWithPercentHtml.cshtml │ │ ├── CustomItemsProviderHtmlKnock.cshtml │ │ ├── SimpleGridWithoutPagingHtml.cshtml │ │ ├── SimpleGridWithoutPagingMobileHtml.cshtml │ │ ├── lazyLoadingHtmlKnock.cshtml │ │ ├── lazyLoadingMobileHtmlKnock.cshtml │ │ ├── PagingMobileHtml.cshtml │ │ ├── GroupCollapsingMobileKnockoutHtml.cshtml │ │ ├── PagingHtml.cshtml │ │ ├── ScriptJs.cshtml │ │ ├── GroupingMobileHtml.cshtml │ │ ├── GroupingHtml.cshtml │ │ ├── FilteringHtml.cshtml │ │ ├── Js100000RowsKnockout.cshtml │ │ ├── FilteringMobileHtml.cshtml │ │ ├── GroupCollapsingKnockoutHtml.cshtml │ │ ├── GroupingWithVirtualizationHtmlKnock.cshtml │ │ ├── jsCustomActionsOnRowClick.cshtml │ │ ├── HeaderTemplateHtml.cshtml │ │ ├── jsEditingWithCellTemplateKnockout.cshtml │ │ ├── CellTemplateHtml.cshtml │ │ ├── GetItemsCallsHtml.cshtml │ │ ├── Performance100000RowsWithPagingHtml.cshtml │ │ ├── CellTemplateMobileHtml.cshtml │ │ ├── jsFooterTemplateKnockout.cshtml │ │ ├── RowsWithVirtualizationHtml.cshtml │ │ ├── AddRemoveItemsWithItemsProviderHtml.cshtml │ │ ├── EditingWithCellTemplateHtml.cshtml │ │ ├── FilteringGroupingSortingHtml.cshtml │ │ ├── FilteringGroupingSortingMobileHtml.cshtml │ │ ├── jsAddRemoveItemsWithItemsProvider.cshtml │ │ └── DetailsTemplateMobileHtml.cshtml │ │ ├── Angular │ │ ├── jsVirtualizationAngular.cshtml │ │ ├── Js100000RowsAngular.cshtml │ │ ├── CustomActionsOnRowClickHtml.cshtml │ │ ├── SimpleGridNotSizedColumnsHtml.cshtml │ │ ├── SimpleGridNotSizedColumnsWithPercentHtml.cshtml │ │ ├── ScriptJs.cshtml │ │ ├── jsHeaderTemplate.cshtml │ │ ├── CustomItemsProviderHtml.cshtml │ │ ├── SimpleGridWithoutPagingHtml.cshtml │ │ ├── SimpleGridWithoutPagingMobileHtml.cshtml │ │ ├── SimpleGridWithPercentHtml.cshtml │ │ ├── lazyLoadingHtml.cshtml │ │ ├── lazyLoadingMobileHtml.cshtml │ │ ├── jsCustomActionsOnRowClick.cshtml │ │ ├── PagingMobileHtml.cshtml │ │ ├── PagingHtml.cshtml │ │ ├── GroupingHtml.cshtml │ │ ├── FilteringHtml.cshtml │ │ ├── GroupingMobileHtml.cshtml │ │ ├── FilteringMobileHtml.cshtml │ │ ├── GroupCollapsingAngularHtml.cshtml │ │ ├── GroupCollapsingMobileAngularHtml.cshtml │ │ ├── GroupingWithVirtualizationHtml.cshtml │ │ ├── HeaderTemplateHtml.cshtml │ │ ├── CellTemplateHtml.cshtml │ │ ├── jsEditingWithCellTemplateAngular.cshtml │ │ ├── GetItemsCallsHtml.cshtml │ │ ├── CellTemplateMobileHtml.cshtml │ │ ├── Performance100000RowsWithPagingHtml.cshtml │ │ ├── AddRemoveItemsWithItemsProviderHtml.cshtml │ │ ├── jsAddRemoveItemsWithItemsProvider.cshtml │ │ ├── RowsWithVirtualizationHtml.cshtml │ │ └── DetailsTemplateMobileHtml.cshtml │ │ └── Index.cshtml ├── Models │ ├── TGridModels │ │ ├── SortDescriptor.cs │ │ ├── Item.cs │ │ └── FilterDescriptor.cs │ └── UIModel.cs ├── Global.asax.cs ├── Properties │ ├── PublishProfiles │ │ ├── tgridstg - FTP (2).pubxml │ │ └── tgridstg - Web Deploy (2).pubxml │ └── AssemblyInfo.cs ├── HttpHandlers │ └── MarkdownHandler.cs ├── Web.Debug.config ├── Web.Release.config └── packages.config ├── .nuget ├── NuGet.exe └── NuGet.Config ├── TGrid.0.1.1.nupkg ├── TGrid.0.1.2.nupkg ├── TGrid.0.2.1.nupkg ├── TGrid.0.2.2.nupkg ├── TGrid.0.2.3.nupkg ├── TGrid.0.2.4.nupkg ├── TGrid.0.2.5.nupkg ├── TGrid.0.2.6.nupkg ├── TGrid.0.2.7.nupkg ├── tools ├── AjaxMin.dll ├── AjaxMin.exe ├── AjaxMinCommandPrompt.bat ├── AjaxMinTask.dll ├── AjaxMinifier.exe ├── net20 │ ├── AjaxMin.dll │ └── AjaxMinifier.exe ├── net35 │ ├── AjaxMin.dll │ └── AjaxMinTask.dll ├── AjaxMin.tasks ├── AjaxMinTask.targets └── AjaxMinCommandPromptVars.bat ├── TGrid.0.2.2.1.nupkg ├── TGrid.TypeScript.DefinitelyTyped.0.2.2.nupkg ├── TGrid.TypeScript.DefinitelyTyped.0.2.3.nupkg ├── TGrid.TypeScript.DefinitelyTyped.0.2.4.nupkg ├── TGrid.TypeScript.DefinitelyTyped.0.2.5.nupkg ├── TGridArrayItemsProviderTypeScript.0.2.3.nupkg ├── TGridArrayItemsProviderTypeScript.0.2.4.nupkg ├── TGrid.TypeScript.DefinitelyTyped.0.2.2.1.nupkg ├── LICENSE └── TGrid.sln /TesserisPro.TGrid/bin/dummy.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TesserisPro.TGrid/Scripts/_references.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/generalStyles.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TesserisPro.TGrid/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": {} 3 | } -------------------------------------------------------------------------------- /.nuget/NuGet.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/.nuget/NuGet.exe -------------------------------------------------------------------------------- /TGrid.0.1.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TGrid.0.1.1.nupkg -------------------------------------------------------------------------------- /TGrid.0.1.2.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TGrid.0.1.2.nupkg -------------------------------------------------------------------------------- /TGrid.0.2.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TGrid.0.2.1.nupkg -------------------------------------------------------------------------------- /TGrid.0.2.2.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TGrid.0.2.2.nupkg -------------------------------------------------------------------------------- /TGrid.0.2.3.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TGrid.0.2.3.nupkg -------------------------------------------------------------------------------- /TGrid.0.2.4.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TGrid.0.2.4.nupkg -------------------------------------------------------------------------------- /TGrid.0.2.5.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TGrid.0.2.5.nupkg -------------------------------------------------------------------------------- /TGrid.0.2.6.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TGrid.0.2.6.nupkg -------------------------------------------------------------------------------- /TGrid.0.2.7.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TGrid.0.2.7.nupkg -------------------------------------------------------------------------------- /tools/AjaxMin.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/tools/AjaxMin.dll -------------------------------------------------------------------------------- /tools/AjaxMin.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/tools/AjaxMin.exe -------------------------------------------------------------------------------- /TGrid.0.2.2.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TGrid.0.2.2.1.nupkg -------------------------------------------------------------------------------- /tools/AjaxMinCommandPrompt.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | %comspec% /k "%~dp0AjaxMinCommandPromptVars.bat" 3 | -------------------------------------------------------------------------------- /tools/AjaxMinTask.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/tools/AjaxMinTask.dll -------------------------------------------------------------------------------- /tools/AjaxMinifier.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/tools/AjaxMinifier.exe -------------------------------------------------------------------------------- /tools/net20/AjaxMin.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/tools/net20/AjaxMin.dll -------------------------------------------------------------------------------- /tools/net35/AjaxMin.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/tools/net35/AjaxMin.dll -------------------------------------------------------------------------------- /tools/net35/AjaxMinTask.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/tools/net35/AjaxMinTask.dll -------------------------------------------------------------------------------- /tools/net20/AjaxMinifier.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/tools/net20/AjaxMinifier.exe -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/batchSizeOptions.md: -------------------------------------------------------------------------------- 1 | ####batchSize 2 | 3 | Don't change this option. It is for internal use. -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/favicon.ico -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/currentPageOptions.md: -------------------------------------------------------------------------------- 1 | ####currentPage 2 | 3 | Don't change this option. It's for internal use. -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/firstLoadSizeOptions.md: -------------------------------------------------------------------------------- 1 | ####firstLoadSize 2 | 3 | Don't change this option. It's for internal use. -------------------------------------------------------------------------------- /TGrid.TypeScript.DefinitelyTyped.0.2.2.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TGrid.TypeScript.DefinitelyTyped.0.2.2.nupkg -------------------------------------------------------------------------------- /TGrid.TypeScript.DefinitelyTyped.0.2.3.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TGrid.TypeScript.DefinitelyTyped.0.2.3.nupkg -------------------------------------------------------------------------------- /TGrid.TypeScript.DefinitelyTyped.0.2.4.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TGrid.TypeScript.DefinitelyTyped.0.2.4.nupkg -------------------------------------------------------------------------------- /TGrid.TypeScript.DefinitelyTyped.0.2.5.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TGrid.TypeScript.DefinitelyTyped.0.2.5.nupkg -------------------------------------------------------------------------------- /TGridArrayItemsProviderTypeScript.0.2.3.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TGridArrayItemsProviderTypeScript.0.2.3.nupkg -------------------------------------------------------------------------------- /TGridArrayItemsProviderTypeScript.0.2.4.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TGridArrayItemsProviderTypeScript.0.2.4.nupkg -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/TGrid-0.1.2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/TGrid-0.1.2.zip -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/TGrid-0.1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/TGrid-0.1.zip -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/TGrid-0.2.1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/TGrid-0.2.1.zip -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/TGrid-0.2.2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/TGrid-0.2.2.zip -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/TGrid-0.2.3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/TGrid-0.2.3.zip -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/TGrid-0.2.5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/TGrid-0.2.5.zip -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/TGrid-0.2.7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/TGrid-0.2.7.zip -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/add.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/busy.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/busy.gif -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/logo.jpg -------------------------------------------------------------------------------- /TGrid.TypeScript.DefinitelyTyped.0.2.2.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TGrid.TypeScript.DefinitelyTyped.0.2.2.1.nupkg -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/delete.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/gears5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/gears5.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/gears6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/gears6.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/group.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/iphone.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/minus.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/tgrid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/tgrid.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/phonewithgrid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/phonewithgrid.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Global.asax: -------------------------------------------------------------------------------- 1 | <%@ Application Codebehind="Global.asax.cs" Inherits="TesserisPro.TGrid.Web.MvcApplication" Language="C#" %> 2 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/gridonmainpage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/gridonmainpage.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/path32png.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/path32png.ico -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/tesseris.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/tesseris.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/tesseris1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/tesseris1.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/tgridSNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/tgridSNS.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/monitorwithgrid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/monitorwithgrid.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/phonewithgrid1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/phonewithgrid1.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/logo_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/logo_small.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/logo_small_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/logo_small_1.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/logo_small_for_doc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/logo_small_for_doc.jpg -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck1.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck10.jpg -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck11.jpg -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck12.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck13.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck14.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck15.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck16.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck17.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck18.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck3.jpg -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck4.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck5.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck6.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck7.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck8.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/picturesForGrid/truck9.png -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/imagesForDocs/dataGMember.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/imagesForDocs/dataGMember.jpg -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/imagesForDocs/columnGeneral.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/imagesForDocs/columnGeneral.jpg -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/imagesForDocs/detailsTemplate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/imagesForDocs/detailsTemplate.jpg -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/imagesForDocs/mobileTemplate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/imagesForDocs/mobileTemplate.jpg -------------------------------------------------------------------------------- /.nuget/NuGet.Config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/imagesForDocs/columnCellTemplate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/imagesForDocs/columnCellTemplate.jpg -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/imagesForDocs/columnHeaderTemplate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/imagesForDocs/columnHeaderTemplate.jpg -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/imagesForDocs/filterPopupTemplate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/imagesForDocs/filterPopupTemplate.jpg -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/imagesForDocs/mobileTemplateGrouping.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/imagesForDocs/mobileTemplateGrouping.jpg -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/images/imagesForDocs/columnCellDetailsTemplate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TesserisPro/tgrid/HEAD/TesserisPro.TGrid.Web/Content/images/imagesForDocs/columnCellDetailsTemplate.jpg -------------------------------------------------------------------------------- /tools/AjaxMin.tasks: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /tools/AjaxMinTask.targets: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Scripts/_references.js: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | /// -------------------------------------------------------------------------------- /TesserisPro.TGrid/Scripts/typings/extenders.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | interface KnockoutBindingHandlers { 4 | tgrid: KnockoutBindingHandler; 5 | } 6 | 7 | interface HTMLElement { 8 | grid: TesserisPro.TGrid.Grid; 9 | } 10 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/groupHeaderTemplateOptions.md: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace TesserisPro.TGrid.Web.Markdown 7 | { 8 | public class groupHeaderTemplateOptions 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/release.min.html: -------------------------------------------------------------------------------- 1 |

TGrid Releases

0.2.1

  • IE9 support added
  • Add keyboard support
  • Bugfixing

0.1.2

  • Minor bugfixing
  • Nuget package created

0.1

  • Initial release all major functions are suported
-------------------------------------------------------------------------------- /tools/AjaxMinCommandPromptVars.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | set PATH=%~dp0;%PATH% 3 | echo Minify a JavaScript file by typing: 4 | echo ajaxminifier inputfile.js -o outputfile.js 5 | echo Minify a CSS file by typing: 6 | echo ajaxminifier inputfile.css -o outputfile.css 7 | echo Type ajaxminifier -? to get help. 8 | echo ---------------------------------------------- 9 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Scripts/highliterFix.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | $(".editor-container").keypress(function (event) { 3 | event.stopImmediatePropagation(); 4 | event.stopPropagation(); 5 | event.preventDefault(); 6 | }); 7 | $(".editor-container").keydown(function (event) { 8 | return false; 9 | }); 10 | }) -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/App_Start/FilterConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Web; 2 | using System.Web.Mvc; 3 | 4 | namespace TesserisPro.TGrid.Web 5 | { 6 | public class FilterConfig 7 | { 8 | public static void RegisterGlobalFilters(GlobalFilterCollection filters) 9 | { 10 | filters.Add(new HandleErrorAttribute()); 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /TesserisPro.TGrid/web.config: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/columnProperties.md: -------------------------------------------------------------------------------- 1 | ##TGrid column properties 2 | 3 | Column properies can be defined in a column template to customize column behavior. Below is an example of column property. 4 | 5 | 6 | 7 | Where *Name* is value of property **data-g-member** 8 | 9 | **data-g-member** is only one **required** column property. If you will not define his property column will will show no data. -------------------------------------------------------------------------------- /TesserisPro.TGrid/Scripts/typings/tgrid-angular-extension.d.ts: -------------------------------------------------------------------------------- 1 | declare module ng { 2 | interface IModule { 3 | _invokeQueue: Array; 4 | } 5 | interface IAugmentedJQueryStatic extends JQueryStatic { 6 | injector(): any; 7 | } 8 | interface IScope { 9 | items: Array; 10 | options: TesserisPro.TGrid.Options; 11 | } 12 | } 13 | interface HTMLElement{ 14 | injector(): any; 15 | } 16 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/App_Start/BundleConfig.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Optimization; 6 | 7 | namespace TesserisPro.TGrid.Web.App_Start 8 | { 9 | public class BundleConfig 10 | { 11 | public static void RegisterBundles(BundleCollection bundles) 12 | { 13 | bundles.Add(new ScriptBundle("~/bundles/scripts").Include("~/Scripts/init.js")); 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/dataGEnableGrouping.md: -------------------------------------------------------------------------------- 1 | ####data-g-enable-grouping 2 | 3 | This property is used to disable grouping for this column. 4 | 5 | **Value:** *true* or *false*. 6 | 7 | **Default value:** *true*. 8 | 9 | **Example**: 10 | 11 |
12 | 	 
13 | 
14 | ##### 15 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/dataGEnableSorting.md: -------------------------------------------------------------------------------- 1 | ####data-g-enable-sorting 2 | 3 | This property is used to disable sorting for this column. 4 | 5 | **Value:** *true* or *false*. 6 | 7 | **Default value:** *true*. 8 | 9 | **Example**: 10 | 11 |
12 | 	 
13 | 
14 | ##### 15 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/dataGEnableFiltering.md: -------------------------------------------------------------------------------- 1 | ####data-g-enable-filtering 2 | 3 | The property is used to disable filtering for the column. 4 | 5 | **Value:** *true* or *false*. 6 | 7 | **Default value:** *true*. 8 | 9 | **Example:** 10 | 11 |
12 | 	 
13 | 
14 | ##### 15 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/iframe.css: -------------------------------------------------------------------------------- 1 | .tgrid-mobile-container { 2 | height: 492px; 3 | } 4 | 5 | .mobile-phone-wrapper { 6 | position:relative; 7 | } 8 | 9 | .mobile-grid-container { 10 | position:absolute; 11 | top: 136px; 12 | left: 57px; 13 | background: white; 14 | height: 519px; 15 | width: 318px; 16 | } 17 | 18 | body{ 19 | margin: 0 1px 0 0; 20 | } 21 | 22 | .footer { 23 | color: #757575; 24 | text-align: center; 25 | font-size: 14px; 26 | } 27 | 28 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/purchaseStyle.css: -------------------------------------------------------------------------------- 1 | body { 2 | } 3 | 4 | .tgrid-header-cell-container{ 5 | margin: 0px; 6 | display:inline-block; 7 | width: 100%; 8 | height: 55px; 9 | position: relative; 10 | line-height: 25px; 11 | border:white; 12 | 13 | } 14 | 15 | .tgrid-table { 16 | border-collapse: separate; 17 | } 18 | 19 | .tgrid-table thead tr th { 20 | padding:0; 21 | } 22 | 23 | .tgrid-table tbody tr td { 24 | padding: 0; 25 | text-align:center; 26 | } 27 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/dataGResizable.md: -------------------------------------------------------------------------------- 1 | ###data-g-resizable 2 | 3 | Defines if the column is resizable. If the property **data-g-not-sized** value is set to true, the column will not be resizable. 4 | 5 | **Value:** *false* or *true*. 6 | 7 | **Default value:** *true*. 8 | 9 | **Example**: 10 | 11 |
12 | 	 
13 | 
14 | ##### 15 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/CustomActionsOnRowClickHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 | 	
5 | 13 |
14 |
15 | 16 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/SimpleGridWithPercentHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 | 	
5 | 13 |
14 |
15 | 16 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/jsVirtualizationAngular.cshtml: -------------------------------------------------------------------------------- 1 | 4 | 5 |
 6 | 	var items = [
 7 | 		{ Name: "Elizabeth", Surname: "Brown", Age: "20" },
 8 | 		//... add your items here
 9 |     ];
10 | 
11 |    var sampleModule = angular.module("SampleModule", ['TGrid'])
12 |         .controller("ctrl", function ctrl($scope) {
13 |             $scope.dataProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
14 |         })
15 | 
16 |     $(function () {
17 |     })
18 | 
-------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/App_Start/WebApiConfig.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web.Http; 5 | 6 | namespace TesserisPro.TGrid.Web 7 | { 8 | public static class WebApiConfig 9 | { 10 | public static void Register(HttpConfiguration config) 11 | { 12 | config.Routes.MapHttpRoute( 13 | name: "DefaultApi", 14 | routeTemplate: "api/{controller}/{id}", 15 | defaults: new { id = RouteParameter.Optional } 16 | ); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/SimpleGridNotSizedColumnsHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 | 	
5 | 13 |
14 |
15 | 16 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/SimpleGridNotSizedColumnsWithPercentHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 | 	
5 | 13 |
14 |
15 | 16 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/CustomItemsProviderHtmlKnock.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |      
5 | 13 |
14 |
15 | 16 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/SimpleGridWithoutPagingHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
 5 |     
6 | 14 |
15 |
16 | 17 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/SimpleGridWithoutPagingMobileHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
 5 |     
6 | 14 |
15 |
16 | 17 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/lazyLoadingHtmlKnock.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
 5 |    
6 | 14 |
15 |
16 | 17 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/Js100000RowsAngular.cshtml: -------------------------------------------------------------------------------- 1 | 4 | 5 |
 6 |     var sampleModule = angular.module("SampleModule", ['TGrid'])
 7 |         .controller("ctrl", function ctrl($scope) {
 8 |             $scope.url = '@@Url.Content("~")'.concat("Content/images/picturesForGrid/");
 9 |             $scope.dataProvider = new TesserisPro.TGrid.ServerItemsProvider('@@Url.Content("~/Home/GetItems")', '@@Url.Content("~/Home/GetTotalItemsCount")', '@@Url.Content("~")');
10 |         })
11 | 
12 |     $(function () {
13 |     })
14 | 
-------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/lazyLoadingMobileHtmlKnock.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 | 13 |
14 |
15 | 16 | -------------------------------------------------------------------------------- /TesserisPro.TGrid/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/dataGWidth.md: -------------------------------------------------------------------------------- 1 | ###data-g-width 2 | 3 | Defines the column width in pixels or percent. 4 | 5 | **Value:** Any positive number to define the width in pixels("150") or a positive number with a percent sign ("15%"). 6 | 7 | **Default value:** *150* 8 | 9 | **Example**: 10 | 11 |
12 | 	 
13 | 
14 | ##### 15 |
16 | 	 
17 | 
18 | ##### 19 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/PagingMobileHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 | 13 |
14 |
15 | 16 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/CustomActionsOnRowClickHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 | 	
5 |
6 | 7 | 15 | 16 |
17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/dataGNotSized.md: -------------------------------------------------------------------------------- 1 | ###data-g-not-sized 2 | 3 | Defines whether the column has a width. If it is set to *true*, then: 4 | 5 | + the column doesn't have a width 6 | 7 | + the column becomes not resizable 8 | 9 | + the table css property *table-layout* is set to *fixed* 10 | 11 | + a width of all not-sized columns becomes the same and depends on the table width 12 | 13 | **Example**: 14 | 15 |
16 | 	 
17 | 
18 | ##### 19 | 22 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/GroupCollapsingMobileKnockoutHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |      
5 | 13 |
14 |
15 | 16 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Models/TGridModels/SortDescriptor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace TesserisPro.TGrid.Web.Models.TGridModels 7 | { 8 | public class SortDescriptor 9 | { 10 | public string path {get; set;} 11 | public bool? asc { get; set; } 12 | 13 | 14 | public SortDescriptor() 15 | { 16 | this.path = String.Empty; 17 | this.asc = null; 18 | } 19 | public SortDescriptor(string path, bool? acs) 20 | { 21 | this.path = path; 22 | this.asc = acs; 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/PagingHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 | 13 |
14 |
15 | 16 | 19 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/ScriptJs.cshtml: -------------------------------------------------------------------------------- 1 | 4 | 5 |
 6 |     var items = [
 7 |         { Name: "John", Surname: "Figgins", Age: "20", detail: "Person details: John Figgins, 20 years, accounter", detail_Name: "First name:  John", detail_Surname: "Last name: Figgins" }
 8 |         //... add your items here
 9 |     ];
10 | 
11 |     function vm() {
12 |         var self = this;
13 |         self.itemsProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
14 |     };
15 | 
16 |     $(function () {
17 |         ko.applyBindings(new vm());
18 |     });
19 | 
-------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/enableSorting.md: -------------------------------------------------------------------------------- 1 | ####enableSorting 2 | 3 | Enables or disables sorting. 4 | 5 | **Value:** *true* or *false*. 6 | 7 | **Default value:** *false*. 8 | 9 | **Example:** 10 | 11 | #####For Knockout 12 | 13 |
14 | 	
15 |
16 |
17 | 18 | #####For Angular 19 | 20 |
21 | 	
22 | 	
23 | 
24 | 25 | ##### 26 | 27 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/SimpleGridNotSizedColumnsHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 | 	
5 |
6 | 7 | 15 | 16 |
17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/GroupingMobileHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 | 12 |
13 |
14 | 15 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/GroupingHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |      
5 | 12 |
13 |
14 | 15 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/enableGrouping.md: -------------------------------------------------------------------------------- 1 | ####enableGrouping 2 | 3 | Enables or disables grouping. 4 | 5 | **Value:** *true* or *false*. 6 | 7 | **Default value:** *false*. 8 | 9 | **Example:** 10 | 11 | #####For Knockout 12 | 13 |
14 | 	
15 |
16 |
17 | 18 | #####For Angular 19 | 20 |
21 | 	
22 | 	
23 | 
24 | 25 | ##### 26 | 27 | 30 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/captureScroll.md: -------------------------------------------------------------------------------- 1 | ####captureScroll 2 | 3 | Enables or disables the scroll capturing. 4 | 5 | **Value:** *true* or *false* 6 | 7 | **Default value:** *true* 8 | 9 | **Example:** 10 | 11 | #####For Knockout 12 | 13 |
14 | 	
15 |
16 |
17 | 18 | #####For Angular 19 | 20 |
21 | 	
22 | 	
23 | 
24 | 25 | ##### 26 | 27 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/enableFiltering.md: -------------------------------------------------------------------------------- 1 | ####enableFiltering 2 | 3 | Enables or disables filtering. 4 | 5 | **Value:** *true* or *false*. 6 | 7 | **Default value:** *false*. 8 | 9 | **Example:** 10 | 11 | #####For Knockout 12 | 13 |
14 | 	
15 |
16 |
17 | 18 | #####For Angular 19 | 20 |
21 | 	
22 | 	
23 | 
24 | 25 | ##### 26 | 27 | 30 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/pageSize.md: -------------------------------------------------------------------------------- 1 | ####pageSize. 2 | 3 | Defines how many items are displayed on 1 page. 4 | 5 | **Value:** a number from 1 to the total items count. 6 | 7 | **Default value:** *10*. 8 | 9 | **Example:** 10 | 11 | #####For Knockout 12 | 13 |
14 | 	
15 |
16 |
17 | 18 | #####For Angular 19 | 20 |
21 | 	
22 | 	
23 | 
24 | 25 | ##### 26 | 27 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Scripts/iframe/IItemProvider.js: -------------------------------------------------------------------------------- 1 | //===================================================================================== 2 | // 3 | // The Tesseris Free License 4 | // 5 | // Copyright(c) 2014 Tesseris Pro LLC 6 | // 7 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this 8 | // software and associated documentation files(the "Software"), to deal in the Software 9 | // without restriction, including without limitation the rights to use, copy, modify, 10 | // merge, publish, distribute, sublicense, and / or sell copies of the Software, and to 11 | // permit persons to whom the Software is furnished to do so, subject to the following 12 | // conditions: 13 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/SimpleGridNotSizedColumnsWithPercentHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 | 	
5 |
6 | 7 | 15 | 16 |
17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Scripts/iframe/IFilterPopupViewModel.js: -------------------------------------------------------------------------------- 1 | //===================================================================================== 2 | // 3 | // The Tesseris Free License 4 | // 5 | // Copyright(c) 2014 Tesseris Pro LLC 6 | // 7 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this 8 | // software and associated documentation files(the "Software"), to deal in the Software 9 | // without restriction, including without limitation the rights to use, copy, modify, 10 | // merge, publish, distribute, sublicense, and / or sell copies of the Software, and to 11 | // permit persons to whom the Software is furnished to do so, subject to the following 12 | // conditions: 13 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/FilteringHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |      
5 | 13 |
14 |
15 | 16 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/Js100000RowsKnockout.cshtml: -------------------------------------------------------------------------------- 1 | 4 | 5 |
 6 |         
 7 |     
18 | 
19 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/ScriptJs.cshtml: -------------------------------------------------------------------------------- 1 | 4 | 5 |
 6 |     var items = [
 7 |         { Name: "John", Surname: "Figgins", Age: "20", detail: "Person details: John Figgins, 20 years, accounter", detail_Name: "First name:  John", detail_Surname: "Last name: Figgins" },
 8 |         //... add your items here
 9 |     ];
10 | 
11 |     var sampleModule = angular.module("SampleModule", ['TGrid'])
12 |         .controller("ctrl", function ctrl($scope) {
13 |             $scope.dataProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
14 |         })
15 | 
16 |     $(function () {
17 |     })
18 | 
-------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/FilteringMobileHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |    
5 | 13 |
14 |
15 | 16 | 19 | 20 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/GroupCollapsingKnockoutHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |    
5 | 12 |
13 |
14 | 15 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/hideHeader.md: -------------------------------------------------------------------------------- 1 | ####hideHeader 2 | 3 | You can choose do not render the grid header. If it is set to *true*, the grid header isn't rendered. 4 | 5 | **Value:** *true* or *false* 6 | 7 | **Default value:** *false* 8 | 9 | **Example:** 10 | 11 | #####For Knockout 12 | 13 |
14 | 	
15 |
16 |
17 | 18 | #####For Angular 19 | 20 |
21 | 	
22 | 	
23 | 
24 | 25 | ##### 26 | 27 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/pageSlide.md: -------------------------------------------------------------------------------- 1 | ####pageSlide 2 | 3 | Sets how many pages should be visible (to the left and to the right from current) in a pager. 4 | 5 | **Value:** a number from 1 to the total pages count. 6 | 7 | **Default value:** *1*. 8 | 9 | **Example:** 10 | 11 | #####For Knockout 12 | 13 |
14 | 	
15 |
16 |
17 | 18 | #####For Angular 19 | 20 |
21 | 	
22 | 	
23 | 
24 | 25 | ##### 26 | 27 | 30 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/jsHeaderTemplate.cshtml: -------------------------------------------------------------------------------- 1 | 4 | 5 |
 6 |     var items = [
 7 |         { Name: "John", Surname: "Figgins", Age: "20", detail: "Person details: John Figgins, 20 years, accounter", detail_Name: "First name:  John", detail_Surname: "Last name: Figgins" },
 8 |         //... add your items here
 9 |     ];
10 |     var sampleModule = angular.module("SampleModule", ['TGrid'])
11 |         .controller("ctrl", function ctrl($scope) {
12 |             $scope.dataProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
13 | 			$scope.nameColumnTitle = "First Name";
14 |         })
15 |     $(function () {
16 |     })
17 | 
18 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/dataGViews.md: -------------------------------------------------------------------------------- 1 | ###data-g-views 2 | 3 | Defines in which mode display the column: in mobile, desktop or all modes. 4 | 5 | **Value:** *mobile* or *desktop* or *mobile,desktop*. 6 | 7 | **Default value:** *mobile,desktop*. 8 | 9 | **Example**: 10 | 11 |
12 | 	 
13 | 
14 | ##### 15 |
16 | 	 
17 | 
18 | ##### 19 |
20 | 	 
21 | 
22 | ##### 23 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/GroupingWithVirtualizationHtmlKnock.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 | 13 |
14 |
15 | 16 | -------------------------------------------------------------------------------- /TesserisPro.TGrid/angular/AngularModuleTGrid.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | 'use strict'; 3 | 4 | angular.module('TGrid', []) 5 | .directive('tGrid', TGrid.Angular.Directive) 6 | .directive('ngShowInFocus', function () { 7 | return { 8 | replace: true, 9 | restrict: 'A', 10 | link: function (scope, element, attr) { 11 | scope.$watch(attr.ngShowInFocus, function (value) { 12 | if (value) { 13 | element.css('display', 'block'); 14 | element.focus(); 15 | } else { 16 | element.css('display', 'none'); 17 | } 18 | }); 19 | } 20 | }; 21 | }); 22 | })(); -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/App_Start/RouteConfig.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Mvc; 6 | using System.Web.Routing; 7 | 8 | namespace TesserisPro.TGrid.Web 9 | { 10 | public class RouteConfig 11 | { 12 | public static void RegisterRoutes(RouteCollection routes) 13 | { 14 | routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 15 | routes.IgnoreRoute("{resource}.md"); 16 | 17 | 18 | routes.MapRoute( 19 | name: "Default", 20 | url: "{controller}/{action}/{id}", 21 | defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 22 | ); 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Models/UIModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Globalization; 5 | using System.Web.Mvc; 6 | using System.Web.Security; 7 | 8 | namespace TesserisPro.TGrid.Web.Models 9 | { 10 | public class UIModel 11 | { 12 | public string title { set; get; } 13 | public string url { set; get; } 14 | public string htmlUrl { set; get; } 15 | public string cssUrl { set; get; } 16 | public string jsUrl { set; get; } 17 | public string angularUrl { get; set; } 18 | public string angularHtmlUrl { set; get; } 19 | public string angularCssUrl { set; get; } 20 | public string angularJsUrl { set; get; } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Scripts/iframe/AngularModuleTGrid.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | 'use strict'; 3 | 4 | angular.module('TGrid', []) 5 | .directive('tGrid', TGrid.Angular.Directive) 6 | .directive('ngShowInFocus', function () { 7 | return { 8 | replace: true, 9 | restrict: 'A', 10 | link: function (scope, element, attr) { 11 | scope.$watch(attr.ngShowInFocus, function (value) { 12 | if (value) { 13 | element.css('display', 'block'); 14 | element.focus(); 15 | } else { 16 | element.css('display', 'none'); 17 | } 18 | }); 19 | } 20 | }; 21 | }); 22 | })(); -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/CustomItemsProviderHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 |
6 | 7 | 15 | 16 |
17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Scripts/iframe/FooterViewModel.js: -------------------------------------------------------------------------------- 1 | var TesserisPro; 2 | (function (TesserisPro) { 3 | (function (TGrid) { 4 | var FooterViewModel = (function () { 5 | function FooterViewModel(totalCount, selectedItem, currentPage, totalPages) { 6 | this.totalCount = totalCount; 7 | this.selectedItem = selectedItem; 8 | this.currentPage = currentPage; 9 | this.totalPages = totalPages; 10 | } 11 | return FooterViewModel; 12 | })(); 13 | TGrid.FooterViewModel = FooterViewModel; 14 | })(TesserisPro.TGrid || (TesserisPro.TGrid = {})); 15 | var TGrid = TesserisPro.TGrid; 16 | })(TesserisPro || (TesserisPro = {})); 17 | //# sourceMappingURL=FooterViewModel.js.map 18 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/SimpleGridWithoutPagingHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
 5 |    
6 |
7 | 8 | 16 | 17 |
18 |
19 |
20 | 21 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/SimpleGridWithoutPagingMobileHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 |
6 | 7 | 15 | 16 |
17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/enablePaging.md: -------------------------------------------------------------------------------- 1 | ####enablePaging 2 | 3 | Enables or disables paging. Only one of two grid settings: **enablePaging** or **enableVirtualScroll** should be set to *true* at the same time. 4 | 5 | **Value:** *true* or *false*. 6 | 7 | **Default value:** *false*. 8 | 9 | **Example:** 10 | 11 | #####For Knockout 12 | 13 |
14 | 	
15 |
16 |
17 | 18 | #####For Angular 19 | 20 |
21 | 	
22 | 	
23 | 
24 | 25 | ##### 26 | 27 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/dataGFilterMember.md: -------------------------------------------------------------------------------- 1 | ###data-g-filter-member 2 | 3 | This property is used to define an item's property for filtering. 4 | 5 | **Value:** Defines an item's property name, which value will be used for filtering this grid. 6 | 7 | **Default value:** property **data-g-member**. 8 | 9 | **Example:** 10 | 11 |
12 | 	 
13 | 
14 | ##### 15 | A JavaScript array of items. 16 |
17 | 	var items = [
18 |         { Name: "John", Surname: "Doe", Age: "33", NameLowCase: "john" }
19 |         //... more items
20 | 	];
21 | 
22 | ##### 23 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/SimpleGridWithPercentHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
 5 |    
6 |
7 | 8 | 16 | 17 |
18 |
19 |
20 | 21 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/lazyLoadingHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
 5 |    
6 |
7 | 8 | 16 | 17 |
18 |
19 |
20 | 21 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/lazyLoadingMobileHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |      
5 |
6 | 7 | 15 | 16 |
17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/jsCustomActionsOnRowClick.cshtml: -------------------------------------------------------------------------------- 1 | 4 | 5 |
 6 | 	 var items = [
 7 |          { Name: "John", Surname: "Figgins", Age: "20", detail: "Person details: John Figgins, 20 years, accounter", detail_Name: "First name:  John", detail_Surname: "Last name: Figgins" }
 8 |         //... add your items here
 9 |     ];
10 | 	var sampleModule = angular.module("SampleModule", ['TGrid'])
11 | 		 .controller("ctrl", function ctrl($scope) {
12 | 		 	$scope.dataProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
13 | 		 	$scope.rowClick = function (item, event) {
14 | 		 		alert("You just have clicked on row");
15 | 		 	};
16 | 		 })
17 | 
18 | 	$(function () {
19 | 	})
20 | 
21 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/PagingMobileHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |    
5 |
6 | 7 | 15 | 16 |
17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Global.asax.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Http; 6 | using System.Web.Mvc; 7 | using System.Web.Routing; 8 | 9 | namespace TesserisPro.TGrid.Web 10 | { 11 | // Note: For instructions on enabling IIS6 or IIS7 classic mode, 12 | // visit http://go.microsoft.com/?LinkId=9394801 13 | public class MvcApplication : System.Web.HttpApplication 14 | { 15 | protected void Application_Start() 16 | { 17 | AreaRegistration.RegisterAllAreas(); 18 | 19 | WebApiConfig.Register(GlobalConfiguration.Configuration); 20 | FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 21 | RouteConfig.RegisterRoutes(RouteTable.Routes); 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Scripts/iframe/IHtmlProvider.js: -------------------------------------------------------------------------------- 1 | //===================================================================================== 2 | // 3 | // The Tesseris Free License 4 | // 5 | // Copyright(c) 2014 Tesseris Pro LLC 6 | // 7 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this 8 | // software and associated documentation files(the "Software"), to deal in the Software 9 | // without restriction, including without limitation the rights to use, copy, modify, 10 | // merge, publish, distribute, sublicense, and / or sell copies of the Software, and to 11 | // permit persons to whom the Software is furnished to do so, subject to the following 12 | // conditions: 13 | /// 14 | /// 15 | /// 16 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/PagingHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |      
5 |
6 | 7 | 15 | 16 |
17 |
18 |
19 | 20 | 23 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/jsCustomActionsOnRowClick.cshtml: -------------------------------------------------------------------------------- 1 | 4 | 5 |
 6 |     var items = ko.mapping.fromJS([
 7 |             { Name: "John", Surname: "Figgins", Age: "20", detail: "Person details: John Figgins, 20 years, accounter", detail_Name: "First name:  John", detail_Surname: "Last name: Figgins" }
 8 |             //... add your items here
 9 |             ])();
10 | 	function vm() {
11 |         var self = this;
12 |         self.itemsProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
13 |         self.rowClick = function (item, event) {
14 |             alert("You just have clicked on row");
15 |         };
16 |     };
17 | 
18 |     $(function () {
19 |         ko.applyBindings(new vm());
20 |     });
21 | 
-------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/dataGSortMember.md: -------------------------------------------------------------------------------- 1 | ###data-g-sort-member 2 | 3 | Defines the item's property for sorting. 4 | 5 | **Value:** Defines the item's property name, which value will be used for sorting this column. 6 | 7 | **Default value:** property **data-g-member**. 8 | 9 | **Example:** 10 | 11 |
12 | 	 
13 | 
14 | ##### 15 | A JavaScript array of items. 16 |
17 | 	var items = [
18 |         { ProductId: "#1-3", ProductName: "Noodle", ProductIdSort: "13"}
19 | 		{ ProductId: "#1/1", ProductName: "Bread", ProductIdSort: "11"}
20 |         //... more items
21 | 	];
22 | 
23 | ##### 24 | 27 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/enableVirtualScroll.md: -------------------------------------------------------------------------------- 1 | ####enableVirtualScroll 2 | 3 | Enables or disables virtual scrolling. Is enabled only if rows count is more then 100. 4 | Only one of two grid setting: **enablePaging** or **enableVirtualScroll** should be set to *true* at the same time. 5 | 6 | **Value:** *true* or *false*. 7 | 8 | **Default value:** *false*. 9 | 10 | **Example:** 11 | 12 | #####For Knockout 13 | 14 |
15 | 	
16 |
17 |
18 | 19 | #####For Angular 20 | 21 |
22 | 	
23 | 	
24 | 
25 | 26 | ##### 27 | 28 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/GroupingHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 |
6 | 7 | 15 | 16 |
17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/enableCollapsing.md: -------------------------------------------------------------------------------- 1 | ####enableCollapsing 2 | 3 | Enables or disables groups collapsing by click on a group header. 4 | To enable groups collapsing **enableCollapsing** setting should be set to *true* and **enableGrouping** setting should be set to true. 5 | 6 | **Value:** *true* or *false*. 7 | 8 | **Default value:** *false* 9 | 10 | **Example:** 11 | 12 | #####For Knockout 13 | 14 |
15 | 	
16 |
17 |
18 | 19 | #####For Angular 20 | 21 |
22 | 	
23 | 	
24 | 
25 | 26 | ##### 27 | 28 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/FilteringHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 |
6 | 7 | 15 | 16 |
17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/GroupingMobileHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 |
6 | 7 | 15 | 16 |
17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/FilteringMobileHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 |
6 | 7 | 15 | 16 |
17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/dataGGroupMember.md: -------------------------------------------------------------------------------- 1 | ###data-g-group-member 2 | 3 | This property is used to define an item's property for grouping. 4 | 5 | **Value:** Defines an item's property name, which value will be used for grouping in the grid. 6 | 7 | **Default value:** property **data-g-member**. 8 | 9 | **Example**: 10 | 11 |
12 | 	 
13 | 
14 | ##### 15 | 16 | JavaScript array of items. 17 |
18 | 	var items = [
19 |         { Name: "John", Surname: "Doe", Age: "33 years 6 month", AgeGroup: "33" }
20 | 		{ Name: "Angela", Surname: "Smith", Age: "33 years 3 month", AgeGroup: "33" }
21 |         //... more items
22 | 	];
23 | 
24 | ##### 25 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/HeaderTemplateHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |      
5 | 20 |
21 |
22 | 23 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/GroupCollapsingAngularHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 |
6 | 7 | 15 | 16 |
17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/GroupCollapsingMobileAngularHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 |
6 | 7 | 15 | 16 |
17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/GroupingWithVirtualizationHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 |
6 | 7 | 15 | 16 |
17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/jsEditingWithCellTemplateKnockout.cshtml: -------------------------------------------------------------------------------- 1 | 4 | 5 |
 6 |     var items = ko.mapping.fromJS([
 7 |             { Name: "John", Surname: "Figgins", Age: "20", detail: "Person details: John Figgins, 20 years, accounter", detail_Name: "First name:  John", detail_Surname: "Last name: Figgins" }
 8 |             //... add your items here
 9 |             ])();
10 |     function vm() {
11 |         var self = this;
12 |         self.editingItem = ko.observable(null);
13 |         self.editingItem.extend({ notify: 'always' });
14 | 
15 |         self.toggleActive = function (item) {
16 |             self.editingItem(item);
17 |         }
18 |         self.itemsProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
19 | 
20 |     };
21 | 
22 |     $(function () {
23 |         ko.applyBindings(new vm());
24 |     });
25 | 
26 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/selectionMode.md: -------------------------------------------------------------------------------- 1 | ####selectionMode 2 | 3 | Defines how many items can be selected in the TGrid. If the **rowClick** is defined, the **selectionMode** is set to *'none'*. 4 | 5 | **Value:** 6 | 7 | + "none" - you can't select any item 8 | 9 | + "single" - you can select only one item 10 | 11 | + "multi" - you can select more, then one item. For selecting more then one item, press key 'Ctrl' 12 | 13 | **Default value:** *single*. 14 | 15 | **Example:** 16 | 17 | #####For Knockout 18 | 19 |
20 | 	
21 |
22 |
23 | 24 | #####For Angular 25 | 26 |
27 | 	
28 | 	
29 | 
30 | 31 | ##### 32 | 33 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/optionsColumns.md: -------------------------------------------------------------------------------- 1 | ### Options Columns 2 | 3 | The options.columns is the type of the TesserisPro.TGrid.ColumnInfo[] 4 | 5 | A class TesserisPro.TGrid.ColumnInfo: 6 | 7 |
 8 | class ColumnInfo {
 9 |     public header: Template;
10 |     public cell: Template;
11 |     public cellDetail: Template;
12 |     public width: string;
13 |     public device: string;
14 |     public sortMemberPath: string;
15 |     public groupMemberPath: string;
16 |     public member: string;
17 |     public resizable: boolean;
18 |     public filterMemberPath: string;
19 |     public notSized: boolean;
20 |     public enableFiltering: boolean;
21 |     public enableSorting: boolean;
22 |     public enableGrouping: boolean;
23 | }
24 | 
25 | #### 26 | 27 | The column's properties can be changed dynamically after the grid loading. 28 | 29 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Scripts/iframe/FooterDirective.js: -------------------------------------------------------------------------------- 1 | var TesserisPro; 2 | (function (TesserisPro) { 3 | /// 4 | /// 5 | (function (TGrid) { 6 | // Class 7 | var FooterDirective = (function () { 8 | function FooterDirective(footer) { 9 | this.directive = {}; 10 | this.directive.restrict = 'E'; 11 | this.directive.template = footer; 12 | this.directive.link = function (scope, element, attrs) { 13 | scope.totalCount = 69; 14 | }; 15 | 16 | return this.directive; 17 | } 18 | return FooterDirective; 19 | })(); 20 | TGrid.FooterDirective = FooterDirective; 21 | })(TesserisPro.TGrid || (TesserisPro.TGrid = {})); 22 | var TGrid = TesserisPro.TGrid; 23 | })(TesserisPro || (TesserisPro = {})); 24 | //# sourceMappingURL=FooterDirective.js.map 25 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/itemsOperations.css: -------------------------------------------------------------------------------- 1 | .tgrid-tablebodycontainer { 2 | max-height: 370px; 3 | } 4 | 5 | #tableAddItemBody table-body tr td{ 6 | display: inline-block; 7 | width: 150px; 8 | margin: 0 4px; 9 | } 10 | 11 | #tableAddItemBody input{ 12 | width: 120px; 13 | border: 1px solid #9F9F9F; 14 | color: #555; 15 | margin: 0 5px; 16 | font-family: "Times New Roman",serif; 17 | font-size: 16px; 18 | } 19 | 20 | #addItem{ 21 | color: #555; 22 | margin-bottom: 30px; 23 | } 24 | 25 | .addButton { 26 | width: 70px; 27 | height: 17px; 28 | display: inline-block; 29 | border: 1px solid #BEBEBE; 30 | text-align: center; 31 | background: #d7d7d7; 32 | padding-bottom: 6px; 33 | margin: 2px; 34 | cursor: default; 35 | } 36 | 37 | #tableItemsActionsHeader{ 38 | margin: 0; 39 | border: 1px solid #BEBEBE; 40 | 41 | } 42 | 43 | #tableAddItemBody { 44 | border-top: none; 45 | border: 1px solid #BEBEBE; 46 | margin: 0 0 10px 0; 47 | } 48 | 49 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/CellTemplateHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |    
5 | 22 |
23 |
24 | 25 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/HeaderTemplateHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |      
5 |
6 | 7 | 22 | 23 |
24 |
25 |
26 | 27 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/dataGMember.md: -------------------------------------------------------------------------------- 1 | ###data-g-member 2 | 3 | Sets the property name of the item in the data source items' array, which value should be displayed in the cell in the current column. 4 | 5 | **Value:** The item's property name, which value will be used for this grid column. 6 | 7 | **Default value:** there is no default value. 8 | 9 | **Example:** 10 | 11 | In HTML: 12 | 13 | 14 |
15 | 	 
16 | 
17 | ##### 18 | In JavaScript: 19 | 20 | A JavaScript array of items, where the every array element is a JavaScript object with the "Name" field. 21 | The "Name" field value is displayed in grid row in the column where the **data-g-member** is set to "Name" 22 | 23 | 24 |
25 | 	var items = [
26 |         { Name: "John", Surname: "Doe", Age: "33" }
27 |         //... more items
28 | 	];
29 | 
30 | 31 | ##### 32 | Result: 33 | 34 | ![data-g-member](../Content/images/imagesForDocs/dataGMember.jpg) 35 | 36 | 39 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Scripts/init.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | //$('#content').css({ "min-height": $(window).height() - ($('footer').height() + $('#wrapper header').height() + $('#tgrid-bar').height()) }); 3 | $('#left').height($('#content').height()); 4 | var left = ($('#wrapper').width() - $('#content').width()) / 2 - $('#left').width(); 5 | $('#left').css({ "left": left }); 6 | $('#right').height($('#content').height()); 7 | $('#right').css({ "right": left }); 8 | 9 | 10 | //$('#top').width($('#wrapper').width()); 11 | //$('#bottom').width($('#wrapper').width()); 12 | //document.getElementsByClassName('menu')[0].onclick = function (event) { 13 | // var menuItems = document.getElementsByClassName('menuItem'); 14 | // for (var i = 0; i < menuItems.length; i++) { 15 | // menuItems[i].style.display = 'block'; 16 | // event.stopPropagation(); 17 | // document.onclick = function () { 18 | // for (var j = 0; j < menuItems.length; j++) { 19 | // menuItems[j].style.display = 'none'; 20 | // }; 21 | // }; 22 | // } 23 | //}; 24 | 25 | }) 26 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/CellTemplateHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 |
6 | 7 | 24 | 25 |
26 |
27 |
28 | 29 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Properties/PublishProfiles/tgridstg - FTP (2).pubxml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | FTP 9 | Release 10 | Any CPU 11 | http://tgridstg.azurewebsites.net 12 | True 13 | False 14 | ftp://waws-prod-db3-005.ftp.azurewebsites.windows.net 15 | False 16 | True 17 | site/wwwroot 18 | tgridstg\$tgridstg 19 | <_SavePWD>True 20 | 21 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/HttpHandlers/MarkdownHandler.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Web; 6 | using MarkdownDeep; 7 | 8 | namespace TesserisPro.TGrid.Web.HttpHandlers 9 | { 10 | public class MarkdownHandler : IHttpHandler 11 | { 12 | public bool IsReusable 13 | { 14 | get { return true; } 15 | } 16 | 17 | public void ProcessRequest(HttpContext context) 18 | { 19 | var lastSlashIndex = context.Request.Url.AbsolutePath.LastIndexOf('/'); 20 | var fileName = context.Request.Url.AbsolutePath.Substring(lastSlashIndex + 1); 21 | var filePath = context.Server.MapPath(Path.Combine("Markdown",fileName)); 22 | string markdownString = String.Empty; 23 | 24 | try 25 | { 26 | markdownString = File.ReadAllText(filePath); 27 | } 28 | catch (FileNotFoundException exc) 29 | { 30 | 31 | } 32 | 33 | var markdownTransformer = new Markdown(); 34 | string html = markdownTransformer.Transform(markdownString); 35 | 36 | context.Response.Write(html); 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/GetItemsCallsHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
 9 |     
10 | 23 |
24 |
25 | Server call count: 26 |
27 | 28 |
29 | 30 | -------------------------------------------------------------------------------- /TesserisPro.TGrid/Scripts/typings/angularjs/angular-cookies.d.ts: -------------------------------------------------------------------------------- 1 | /// Type definitions for Angular JS 1.2 (ngCookies module) 2 | // Project: http://angularjs.org 3 | // Definitions by: Diego Vilar 4 | // Definitions: https://github.com/borisyankov/DefinitelyTyped 5 | 6 | 7 | /// 8 | 9 | /////////////////////////////////////////////////////////////////////////////// 10 | // ngCookies module (angular-cookies.js) 11 | /////////////////////////////////////////////////////////////////////////////// 12 | declare module ng.cookies { 13 | 14 | /////////////////////////////////////////////////////////////////////////// 15 | // CookieService 16 | // see http://docs.angularjs.org/api/ngCookies.$cookies 17 | /////////////////////////////////////////////////////////////////////////// 18 | interface ICookiesService {} 19 | 20 | /////////////////////////////////////////////////////////////////////////// 21 | // CookieStoreService 22 | // see http://docs.angularjs.org/api/ngCookies.$cookieStore 23 | /////////////////////////////////////////////////////////////////////////// 24 | interface ICookieStoreService { 25 | get(key: string): any; 26 | put(key: string, value: any): void; 27 | remove(key: string): void; 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Properties/PublishProfiles/tgridstg - Web Deploy (2).pubxml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | MSDeploy 9 | Release 10 | Any CPU 11 | http://tgridstg.azurewebsites.net 12 | True 13 | False 14 | waws-prod-db3-005.publish.azurewebsites.windows.net:443 15 | tgridstg 16 | 17 | True 18 | WMSVC 19 | True 20 | $tgridstg 21 | <_SavePWD>True 22 | 23 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Web.Debug.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 29 | 30 | -------------------------------------------------------------------------------- /TesserisPro.TGrid/web.Debug.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 29 | 30 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Models/TGridModels/Item.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace TesserisPro.TGrid.Web.Models.TGridModels 7 | { 8 | public class Item 9 | { 10 | public int? Number { get; set; } 11 | public string Brand { get; set; } 12 | public string Type { get; set; } 13 | public int? Year { get; set; } 14 | public int? EnginePower { get; set; } 15 | public string Cabin { get; set; } 16 | public string PictureName { get; set; } 17 | public Dictionary collapsedValue { get; set; } 18 | 19 | public Item(int number, string brand, string type, int year, int enginePower, string cabin, string pictureName) 20 | { 21 | this.Number = number; 22 | this.Brand = brand; 23 | this.Type = type; 24 | this.Year = year; 25 | this.EnginePower = enginePower; 26 | this.Cabin = cabin; 27 | this.PictureName = pictureName; 28 | } 29 | 30 | public Item() 31 | { 32 | this.Number = null; 33 | this.Brand = String.Empty; 34 | this.Type = String.Empty; 35 | this.Year = null; 36 | this.EnginePower = null; 37 | this.Cabin = String.Empty; 38 | this.PictureName = String.Empty; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Web.Release.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 19 | 30 | 31 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/jsEditingWithCellTemplateAngular.cshtml: -------------------------------------------------------------------------------- 1 | 4 | 5 |
 6 |     var items = [
 7 |          { Name: "John", Surname: "Figgins", Age: "20", detail: "Person details: John Figgins, 20 years, accounter", detail_Name: "First name:  John", detail_Surname: "Last name: Figgins" }
 8 |         //... add your items here
 9 |     ];
10 | 
11 |     var sampleModule = angular.module("SampleModule", ['TGrid'])
12 |         .controller("ctrl", function ctrl($scope) {
13 |             $scope.dataProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
14 |             $scope.editingItem = null;
15 |             $scope.valueForEditing = null;
16 |             $scope.valueForSaving = null;
17 |             $scope.colName = null;
18 |             $scope.toggleActive = function (item, colValue, colName) {
19 |                 $scope.valueForEditing = colValue;
20 |                 $scope.valueForSaving = item;
21 |                 $scope.editingItem = colValue;
22 |                 $scope.colName = colName;
23 |             }
24 |             $scope.getValueForSaving = function (colName) {
25 |                 $scope.editingItem = null;
26 |                 $scope.valueForSaving[$scope.colName] = $scope.valueForEditing;
27 |                 return $scope.valueForSaving;
28 |             }
29 |         })
30 | 
31 |     $(function () {
32 |     })
33 | 
34 | -------------------------------------------------------------------------------- /TesserisPro.TGrid/web.Release.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 19 | 30 | 31 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Scripts/iframe/KnockoutItemViewModel.js: -------------------------------------------------------------------------------- 1 | var __extends = this.__extends || function (d, b) { 2 | for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; 3 | function __() { this.constructor = d; } 4 | __.prototype = b.prototype; 5 | d.prototype = new __(); 6 | }; 7 | var TesserisPro; 8 | (function (TesserisPro) { 9 | /// 10 | /// 11 | (function (TGrid) { 12 | var KnockoutItemViewModel = (function (_super) { 13 | __extends(KnockoutItemViewModel, _super); 14 | function KnockoutItemViewModel() { 15 | _super.apply(this, arguments); 16 | } 17 | KnockoutItemViewModel.prototype.setObservable = function (item) { 18 | this.item = ko.observable(item); 19 | }; 20 | 21 | KnockoutItemViewModel.prototype.setItemValue = function (value) { 22 | this.item(value); 23 | this.item.valueHasMutated(); 24 | this.item.notifySubscribers(value); 25 | }; 26 | return KnockoutItemViewModel; 27 | })(TGrid.ItemViewModel); 28 | TGrid.KnockoutItemViewModel = KnockoutItemViewModel; 29 | })(TesserisPro.TGrid || (TesserisPro.TGrid = {})); 30 | var TGrid = TesserisPro.TGrid; 31 | })(TesserisPro || (TesserisPro = {})); 32 | //# sourceMappingURL=KnockoutItemViewModel.js.map 33 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("tesseris")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("tesseris")] 13 | [assembly: AssemblyCopyright("Copyright © 2013")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("eb23c4c4-ca6f-49f4-acfa-2b64104d53b6")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Revision and Build Numbers 33 | // by using the '*' as shown below: 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The Tesseris Free License 2 | 3 | Copyright(c) 2014 Tesseris Pro LLC 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this 6 | software and associated documentation files(the "Software"), to deal in the Software 7 | without restriction, including without limitation the rights to use, copy, modify, 8 | merge, publish, distribute, sublicense, and / or sell copies of the Software, and to 9 | permit persons to whom the Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | 1. The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | 2. Any software that fully or partially contains or uses materials covered by 16 | this license shall notify users about this notice and above copyright.The 17 | notification can be made in "About box" and / or site main web - page footer.The 18 | notification shall contain name of Tesseris Pro company and name of the Software 19 | covered by current license. 20 | 21 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 22 | INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 23 | PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 25 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 26 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Models/TGridModels/FilterDescriptor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace TesserisPro.TGrid.Web.Models.TGridModels 7 | { 8 | public enum Condition { None, Equals, NotEquals }; 9 | 10 | public enum FilterOperation { And, Or }; 11 | 12 | public class FilterDescriptor 13 | { 14 | public string path { get; set; } 15 | public string value { get; set; } 16 | public bool caseSensitive { get; set; } 17 | public Condition condition { get; set; } 18 | public FilterOperation operation { get; set; } 19 | public List children { get; set; } 20 | 21 | public FilterDescriptor() 22 | { 23 | this.path = null; 24 | this.value = null; 25 | this.condition = Condition.None; 26 | this.operation = FilterOperation.And; 27 | this.children = children != null ? children : new List(); 28 | } 29 | 30 | public FilterDescriptor(string path, string value, Condition condition, List children, FilterOperation filterOperation = FilterOperation.And) 31 | { 32 | this.path = path; 33 | this.value = value; 34 | this.condition = condition; 35 | this.operation = filterOperation; 36 | this.children = children != null ? children : new List(); 37 | } 38 | 39 | 40 | } 41 | } -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Scripts/iframe/FilterPopupViewModel.js: -------------------------------------------------------------------------------- 1 | var TesserisPro; 2 | (function (TesserisPro) { 3 | (function (TGrid) { 4 | var FilterPopupViewModel = (function () { 5 | function FilterPopupViewModel(container) { 6 | this.container = container; 7 | } 8 | FilterPopupViewModel.prototype.onApply = function () { 9 | var condition = (this.container.getElementsByTagName("select")[0]).selectedIndex; 10 | var value = (this.container.getElementsByTagName("input")[0]).value; 11 | var path = TGrid.Grid.getGridObject(this.container).options.filterPath; 12 | var filterDescriptor = new TGrid.FilterDescriptor(path, value, condition); 13 | TGrid.Grid.getGridObject(this.container).setFilters(filterDescriptor); 14 | }; 15 | 16 | FilterPopupViewModel.prototype.onClear = function () { 17 | TGrid.Grid.getGridObject(this.container).removeFilters(); 18 | }; 19 | 20 | FilterPopupViewModel.prototype.onClose = function () { 21 | TGrid.Grid.getGridObject(this.container).hideElement(this.container); 22 | }; 23 | return FilterPopupViewModel; 24 | })(); 25 | TGrid.FilterPopupViewModel = FilterPopupViewModel; 26 | })(TesserisPro.TGrid || (TesserisPro.TGrid = {})); 27 | var TGrid = TesserisPro.TGrid; 28 | })(TesserisPro || (TesserisPro = {})); 29 | //# sourceMappingURL=FilterPopupViewModel.js.map 30 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Scripts/Highlighter/shAutoloader.js: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(2(){1 h=5;h.I=2(){2 n(c,a){4(1 d=0;d 2 | 3 |
 4 |     
5 | 31 |
32 |
33 | 34 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/GetItemsCallsHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
 9 |     
10 |
11 | 12 | 25 | 26 |
27 |
28 | Server call count: {{demoData.serverCallCount}} 29 |
30 |
31 | 32 |
33 | 34 | -------------------------------------------------------------------------------- /TesserisPro.TGrid/Scripts/typings/angularjs/angular-sanitize.d.ts: -------------------------------------------------------------------------------- 1 | // Type definitions for Angular JS 1.2 (ngSanitize module) 2 | // Project: http://angularjs.org 3 | // Definitions by: Diego Vilar 4 | // Definitions: https://github.com/borisyankov/DefinitelyTyped 5 | 6 | 7 | /// 8 | 9 | /////////////////////////////////////////////////////////////////////////////// 10 | // ngSanitize module (angular-sanitize.js) 11 | /////////////////////////////////////////////////////////////////////////////// 12 | declare module ng.sanitize { 13 | 14 | /////////////////////////////////////////////////////////////////////////// 15 | // SanitizeService 16 | // see http://docs.angularjs.org/api/ngSanitize.$sanitize 17 | /////////////////////////////////////////////////////////////////////////// 18 | interface ISanitizeService { 19 | (html: string): string; 20 | } 21 | 22 | /////////////////////////////////////////////////////////////////////////// 23 | // Filters included with the ngSanitize 24 | // see https://github.com/angular/angular.js/tree/v1.2.0/src/ngSanitize/filter 25 | /////////////////////////////////////////////////////////////////////////// 26 | export module filter { 27 | 28 | // Finds links in text input and turns them into html links. 29 | // Supports http/https/ftp/mailto and plain email address links. 30 | // see http://code.angularjs.org/1.2.0/docs/api/ngSanitize.filter:linky 31 | interface ILinky { 32 | (text: string, target?: string): string; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/CellTemplateMobileHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 | 34 |
35 |
36 | 37 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/itemsProvider.md: -------------------------------------------------------------------------------- 1 | ####itemsProvider 2 | 3 | Defines an items provider for the grid. 4 | 5 | **Value:** JavaScript object that contains the items provider function. 6 | 7 | The simplest technique is to use the provided ArrayItemsProvider: 8 | 9 |
10 |     var items = [
11 |         { Name: "John", Surname: "Doe", Age: "33" }
12 |         //... more items
13 |     ];
14 | 
15 |     function vm() {
16 |         var self = this;
17 |         self.itemsProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
18 |     };
19 | 
20 | #### 21 | Another provided itemsProvider is the ServerItemsProvider. 22 | 23 | For more complex requirements you can create your own custom itemsProvider. 24 | You have two alternate interfaces to choose from: 25 | 26 | 1. Implement the getItems & getTotalItemsCount methods. 27 | See Demo "Custom Items Provider". 28 | 29 | 2. Implement the getItemsAndTotalCount method. 30 | More suited to returning server data, this interface ties the items & totalCount data together 31 | and reduces the server calls TGrid makes. See Demo "Get Items calls". 32 | 33 | 34 | **Default value:** there isn't any default value. 35 | 36 | **Example:** 37 | 38 | #####For Knockout 39 | 40 |
41 | 	
42 |
43 |
44 | 45 | #####For Angular 46 | 47 |
48 | 	
49 | 	
50 | 
51 | 52 | ##### 53 | 54 | 57 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/CellTemplateMobileHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |      
5 |
6 | 7 | 34 | 35 |
36 |
37 |
38 | 39 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/jsFooterTemplateKnockout.cshtml: -------------------------------------------------------------------------------- 1 | 4 | 5 |
 6 |     var items = [];
 7 |     var getRandomInt = function getRandomInt(min, max) {
 8 |         return Math.floor(Math.random() * (max - min + 1) + min);
 9 |     }
10 | 
11 |     var generateRandomInt = getRandomInt;
12 |     (function (generateRandomInt, items) {
13 |         var names = ['Angela', 'Bella', 'Chris', 'Donna', 'Elizabeth', 'Fiona', 'George', 'Henry', 'Inga', 'Julia', 'Ken', 'Laurence', "John", "Sharilyn", "Matthew", "Jasmine", "Ashley", "Christiana",
14 |         "Cathrine", "Alison","Nicole", "Theron", "Rob", "Larry", "Tina",  "Nelson", "Ted", "William" ];
15 |         var surnames = ['Smith', 'Jones', 'Taylor', 'Williams', 'Brown', 'Davies', 'Evans', 'Wilson', 'Thomas', 'Roberts', 'Johnson', "Figgins","Seidel","Holz","Newlin", "Swanson", "Ronan", "Lewis", 
16 |             'Carter', 'Collins', "Thrush", 'Murphy', 'Turner', 'Ham'];
17 |         var path = document.getElementById("url") != null  ? document.getElementById("url").value : "/";
18 |         for (var i = 0; i < 2000; i++) {
19 |             items.push({
20 |                 Name: names[generateRandomInt(0, names.length - 1)],
21 |                 Surname: surnames[generateRandomInt(0, surnames.length - 1)],
22 |                 Age: generateRandomInt(20, 60),
23 |             });
24 |         }
25 |     })(generateRandomInt, items);
26 | 
27 |     function vm() {
28 |         var self = this;
29 |         self.nameColumnTitle = "First Name";
30 | 
31 |         self.itemsProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
32 |     };
33 | 
34 |     $(function () {
35 |         ko.applyBindings(new vm());
36 |     });
37 | 
-------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/RowsWithVirtualizationHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 | 36 |
37 |
38 | 39 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Scripts/iframe/IFooterViewModel.js: -------------------------------------------------------------------------------- 1 | //===================================================================================== 2 | // 3 | // The Tesseris Free License 4 | // 5 | // Copyright(c) 2014 Tesseris Pro LLC 6 | // 7 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this 8 | // software and associated documentation files(the "Software"), to deal in the Software 9 | // without restriction, including without limitation the rights to use, copy, modify, 10 | // merge, publish, distribute, sublicense, and / or sell copies of the Software, and to 11 | // permit persons to whom the Software is furnished to do so, subject to the following 12 | // conditions: 13 | // 14 | // 1. The above copyright notice and this permission notice shall be included in all 15 | // copies or substantial portions of the Software. 16 | // 17 | // 2. Any software that fully or partially contains or uses materials covered by 18 | // this license shall notify users about this notice and above copyright.The 19 | // notification can be made in "About box" and / or site main web - page footer.The 20 | // notification shall contain name of Tesseris Pro company and name of the Software 21 | // covered by current license. 22 | // 23 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 24 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 25 | // PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 26 | // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 27 | // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 28 | // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 29 | // 30 | //===================================================================================== 31 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/Performance100000RowsWithPagingHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 |
6 | 7 | 33 | 34 |
35 |
36 |
37 | 38 | -------------------------------------------------------------------------------- /TesserisPro.TGrid/license.js: -------------------------------------------------------------------------------- 1 | //!===================================================================================== 2 | //! 3 | //! The Tesseris Free License 4 | //! 5 | //! Copyright(c) 2014 Tesseris Pro LLC 6 | //! 7 | //! Permission is hereby granted, free of charge, to any person obtaining a copy of this 8 | //! software and associated documentation files(the "Software"), to deal in the Software 9 | //! without restriction, including without limitation the rights to use, copy, modify, 10 | //! merge, publish, distribute, sublicense, and / or sell copies of the Software, and to 11 | //! permit persons to whom the Software is furnished to do so, subject to the following 12 | //! conditions: 13 | //! 14 | //! 1. The above copyright notice and this permission notice shall be included in all 15 | //! copies or substantial portions of the Software. 16 | //! 17 | //! 2. Any software that fully or partially contains or uses materials covered by 18 | //! this license shall notify users about this notice and above copyright.The 19 | //! notification can be made in "About box" and / or site main web - page footer.The 20 | //! notification shall contain name of Tesseris Pro company and name of the Software 21 | //! covered by current license. 22 | //! 23 | //! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 24 | //! INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 25 | //! PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 26 | //! HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 27 | //! OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 28 | //! SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 29 | //! 30 | //!===================================================================================== 31 | -------------------------------------------------------------------------------- /TesserisPro.TGrid/Scripts/typings/knockout.mapping/knockout.mapping.d.ts: -------------------------------------------------------------------------------- 1 | // Type definitions for Knockout.Mapping 2.0 2 | // Project: https://github.com/SteveSanderson/knockout.mapping 3 | // Definitions by: Boris Yankov 4 | // Definitions https://github.com/borisyankov/DefinitelyTyped 5 | 6 | /// 7 | 8 | interface KnockoutMappingCreateOptions { 9 | data: any; 10 | parent: any; 11 | } 12 | 13 | interface KnockoutMappingUpdateOptions { 14 | data: any; 15 | parent: any; 16 | observable: KnockoutObservable; 17 | } 18 | 19 | interface KnockoutMappingOptions { 20 | ignore?: string[]; 21 | include?: string[]; 22 | copy?: string[]; 23 | mappedProperties?: string[]; 24 | deferEvaluation?: boolean; 25 | create?: (options: KnockoutMappingCreateOptions) => void; 26 | update?: (options: KnockoutMappingUpdateOptions) => void; 27 | key?: (data: any) => any; 28 | } 29 | 30 | interface KnockoutMapping { 31 | isMapped(viewModel: any): boolean; 32 | fromJS(jsObject: any): any; 33 | fromJS(jsObject: any, targetOrOptions: any): any; 34 | fromJS(jsObject: any, inputOptions: any, target: any): any; 35 | fromJSON(jsonString: string): any; 36 | fromJSON(jsonString: string, targetOrOptions: any): any; 37 | fromJSON(jsonString: string, inputOptions: any, target: any): any; 38 | toJS(rootObject: any, options?: KnockoutMappingOptions): any; 39 | toJSON(rootObject: any, options?: KnockoutMappingOptions): any; 40 | defaultOptions(): KnockoutMappingOptions; 41 | resetDefaultOptions(): void; 42 | getType(x: any): any; 43 | visitModel(rootObject: any, callback: Function, options?: { visitedObjects?; parentName?; ignore?; copy?; include?; }): any; 44 | } 45 | 46 | interface KnockoutStatic { 47 | mapping: KnockoutMapping; 48 | } 49 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/showDetailsOnSelection.md: -------------------------------------------------------------------------------- 1 | ####showDetailsOnSelection. 2 | 3 | Enables or disables details on selection. If the **rowClick** setting is defined, it is set to *false*. 4 | 5 | **Value:** *true* or *false*. 6 | 7 | **Default value:** *false*. 8 | 9 | To make details working on selection you should define an html details template in the TGrid description. 10 | 11 | **Example:** 12 | 13 | #####For Knockout 14 | 15 |
16 | 	
17 |
18 |
19 | ##### 20 | Example of the grid with details settings and a details template: 21 | 22 |
23 | 	
24 | 31 |
32 |
33 | 34 | #####For Angular 35 | 36 |
37 | 	
38 | 	
39 | 
40 | ##### 41 | Example of the grid with details settings,a details template and one column: 42 |
43 | 	
44 |
45 | 46 | 53 | 54 |
55 |
56 |
57 | 58 | ##### 59 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Scripts/iframe/license.js: -------------------------------------------------------------------------------- 1 | //!===================================================================================== 2 | //! 3 | //! The Tesseris Free License 4 | //! 5 | //! Copyright(c) 2014 Tesseris Pro LLC 6 | //! 7 | //! Permission is hereby granted, free of charge, to any person obtaining a copy of this 8 | //! software and associated documentation files(the "Software"), to deal in the Software 9 | //! without restriction, including without limitation the rights to use, copy, modify, 10 | //! merge, publish, distribute, sublicense, and / or sell copies of the Software, and to 11 | //! permit persons to whom the Software is furnished to do so, subject to the following 12 | //! conditions: 13 | //! 14 | //! 1. The above copyright notice and this permission notice shall be included in all 15 | //! copies or substantial portions of the Software. 16 | //! 17 | //! 2. Any software that fully or partially contains or uses materials covered by 18 | //! this license shall notify users about this notice and above copyright.The 19 | //! notification can be made in "About box" and / or site main web - page footer.The 20 | //! notification shall contain name of Tesseris Pro company and name of the Software 21 | //! covered by current license. 22 | //! 23 | //! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 24 | //! INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 25 | //! PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 26 | //! HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 27 | //! OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 28 | //! SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 29 | //! 30 | //!===================================================================================== 31 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/AddRemoveItemsWithItemsProviderHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 | 	
5 | 6 | 7 | 8 | 11 | 14 | 17 | 19 | 21 | 22 | 23 |
9 | Name 10 | 12 | Surname 13 | 15 | Age 16 | 18 | 20 |
24 | 25 | 26 | 27 | 31 | 34 | 37 | 41 | 43 | 44 | 45 |
28 | 29 | 30 | 32 | 33 | 35 | 36 | 38 |
Add 39 |
40 |
42 |
46 |
47 |
48 | 61 |
62 |
63 | 64 | 67 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Scripts/Highlighter/shBrushJScript.js: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | ;(function() 18 | { 19 | // CommonJS 20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; 21 | 22 | function Brush() 23 | { 24 | var keywords = 'break case catch continue ' + 25 | 'default delete do else false ' + 26 | 'for function if in instanceof ' + 27 | 'new null return super switch ' + 28 | 'this throw true try typeof var while with' 29 | ; 30 | 31 | var r = SyntaxHighlighter.regexLib; 32 | 33 | this.regexList = [ 34 | { regex: r.multiLineDoubleQuotedString, css: 'string' }, // double quoted strings 35 | { regex: r.multiLineSingleQuotedString, css: 'string' }, // single quoted strings 36 | { regex: r.singleLineCComments, css: 'comments' }, // one line comments 37 | { regex: r.multiLineCComments, css: 'comments' }, // multiline comments 38 | { regex: /\s*#.*/gm, css: 'preprocessor' }, // preprocessor tags like #region and #endregion 39 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } // keywords 40 | ]; 41 | 42 | this.forHtmlScript(r.scriptScriptTags); 43 | }; 44 | 45 | Brush.prototype = new SyntaxHighlighter.Highlighter(); 46 | Brush.aliases = ['js', 'jscript', 'javascript']; 47 | 48 | SyntaxHighlighter.brushes.JScript = Brush; 49 | 50 | // CommonJS 51 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; 52 | })(); 53 | -------------------------------------------------------------------------------- /TGrid.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.21005.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TesserisPro.TGrid", "TesserisPro.TGrid\TesserisPro.TGrid.csproj", "{F9339722-A757-47E2-897B-70AB9D202365}" 7 | EndProject 8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TesserisPro.TGrid.Web", "TesserisPro.TGrid.Web\TesserisPro.TGrid.Web.csproj", "{65B99E41-E965-4FFC-A97B-8D51DD380C60}" 9 | EndProject 10 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{C3A8FBFA-D74A-445C-8742-A8C7672427BB}" 11 | ProjectSection(SolutionItems) = preProject 12 | .nuget\NuGet.Config = .nuget\NuGet.Config 13 | .nuget\NuGet.exe = .nuget\NuGet.exe 14 | .nuget\NuGet.targets = .nuget\NuGet.targets 15 | EndProjectSection 16 | EndProject 17 | Global 18 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 19 | Debug|Any CPU = Debug|Any CPU 20 | Release|Any CPU = Release|Any CPU 21 | EndGlobalSection 22 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 23 | {F9339722-A757-47E2-897B-70AB9D202365}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 24 | {F9339722-A757-47E2-897B-70AB9D202365}.Debug|Any CPU.Build.0 = Debug|Any CPU 25 | {F9339722-A757-47E2-897B-70AB9D202365}.Release|Any CPU.ActiveCfg = Release|Any CPU 26 | {F9339722-A757-47E2-897B-70AB9D202365}.Release|Any CPU.Build.0 = Release|Any CPU 27 | {65B99E41-E965-4FFC-A97B-8D51DD380C60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 28 | {65B99E41-E965-4FFC-A97B-8D51DD380C60}.Debug|Any CPU.Build.0 = Debug|Any CPU 29 | {65B99E41-E965-4FFC-A97B-8D51DD380C60}.Release|Any CPU.ActiveCfg = Release|Any CPU 30 | {65B99E41-E965-4FFC-A97B-8D51DD380C60}.Release|Any CPU.Build.0 = Release|Any CPU 31 | EndGlobalSection 32 | GlobalSection(SolutionProperties) = preSolution 33 | HideSolutionNode = FALSE 34 | EndGlobalSection 35 | EndGlobal 36 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/AddRemoveItemsWithItemsProviderHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 | 	
5 |
6 |
7 | 8 | 9 | 10 | 13 | 16 | 19 | 21 | 22 | 23 |
11 | Name 12 | 14 | Surname 15 | 17 | Age 18 | 20 |
24 | 25 | 26 | 27 | 31 | 34 | 37 | 40 | 42 | 43 | 44 |
28 | 29 | 30 | 32 | 33 | 35 | 36 | 38 |
Add
39 |
41 |
45 |
46 | 47 | 60 | 61 |
62 |
63 |
64 | 65 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/EditingWithCellTemplateHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 | 25 |
26 |
27 | 28 | 31 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Content/dynamicReconfiguration.css: -------------------------------------------------------------------------------- 1 | .tgrid-tablebodycontainer { 2 | height: 130px; 3 | } 4 | 5 | #tableColumnActionsHeader{ 6 | margin: 0; 7 | border: 1px solid #BEBEBE; 8 | width: 670px; 9 | } 10 | 11 | #tableColumnDeleteBody{ 12 | width: 651px; 13 | border: none; 14 | } 15 | 16 | #tableColumnAddBody { 17 | border-top: none; 18 | border: 1px solid #BEBEBE; 19 | margin: 0 0 10px 0; 20 | width: 670px; 21 | } 22 | 23 | #changeOptionsCheckboxes{ 24 | display: inline-block; 25 | color: #555; 26 | } 27 | 28 | .bordedHeader{ 29 | color: #555; 30 | border: 1px solid #BEBEBE; 31 | width: 145px; 32 | height: 25px; 33 | padding: 5px 5px 1px 2px; 34 | margin: 5px 0; 35 | } 36 | 37 | fieldset{ 38 | color: grey; 39 | margin: 0 0 10px 0; 40 | border: 1px solid #BEBEBE; 41 | height: 270px; 42 | } 43 | 44 | #tableContainer{ 45 | max-height: 130px; 46 | overflow-y: scroll; 47 | width: 668px; 48 | border-left: 1px solid #BEBEBE; 49 | border-right: 1px solid #BEBEBE; 50 | } 51 | 52 | #tableColumnAddBody input{ 53 | width:110px; 54 | color: #555; 55 | border: 1px solid #9F9F9F; 56 | } 57 | 58 | #tableColumnAddBody select{ 59 | color:#555; 60 | } 61 | 62 | #tableColumnAddBody select:disabled{ 63 | color:#BEBEBE; 64 | border:1px solid #BEBEBE; 65 | } 66 | 67 | #tableColumnDeleteBody tr td{ 68 | line-height: normal; 69 | } 70 | 71 | .grid-add-button, .grid-delete-button { 72 | width: 16px; 73 | height: 16px; 74 | display: inline-block; 75 | border: 1px solid #969696; 76 | text-align: center; 77 | margin: 2px; 78 | cursor: default; 79 | } 80 | 81 | .grid-delete-button{ 82 | background: url(images/delete.png) no-repeat; 83 | 84 | } 85 | 86 | .grid-add-button{ 87 | background: url(images/add.png) no-repeat; 88 | margin: 8px 0 0 2px; 89 | } 90 | 91 | legend{ 92 | color: grey; 93 | } 94 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/rowClick.md: -------------------------------------------------------------------------------- 1 | ####rowClick 2 | 3 | Sets a row click handler function name, which can be used in your sample view model to set your action on a row click. The handler function has 2 parameters: an *item* and an *event*. The *item* is an element of your itemsProvider array, binded to the clicked row. The *event* is a mouse event click. 4 | 5 | If the **rowClick** setting is defined, then the **selectionMode** setting is set to 'none' and the **showDetailsOnSelection** setting is set to 'false'. 6 | 7 | **Value:** a string. 8 | 9 | **Default value:** null. 10 | 11 | **Example:** 12 | 13 | #####For Knockout 14 | In HTML: 15 | 16 |
17 | 	
18 |
19 |
20 | ##### 21 | In JavaScript in a knockout view model you should have an observable variable with a name that equals the **rowClick** value. 22 | 23 |
24 |  function vm() {
25 |     var self = this;
26 |     self.itemsProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
27 |     self.rowClickHandler = function (item, event) {
28 |        alert("item: " + item);
29 | 	}
30 | }
31 | 
32 | 33 | #####For Angular 34 | 35 |
36 | 	
37 | 	
38 | 
39 | ##### 40 | In JavaScript in an angular controller you should have a variable with a name that equals the **rowClick** value. 41 | 42 |
43 |  var sampleModule = angular.module("SampleModule", ['TGrid'])
44 |     .controller("ctrl", function ctrl($scope) {
45 |         $scope.dataProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
46 | 		$scope.rowClickHandler = function (item, event) {
47 | 			alert("item: " + item);
48 | 		}
49 | 	})
50 | 
51 | 52 | ##### 53 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/jsAddRemoveItemsWithItemsProvider.cshtml: -------------------------------------------------------------------------------- 1 | 4 | 5 |
 6 | 	var items = [
 7 | 			{ Name: "John", Surname: "Figgins", Age: "20", detail: "Person details: John Figgins, 20 years, accounter", detail_Name: "First name:  John", detail_Surname: "Last name: Figgins" },
 8 | 			{ Name: "Sharilyn", Surname: "Ham", Age: "52", detail: "Person details: Sharilyn Ham, 52 years, sales manager", detail_Name: "First name: Sharilyn", detail_Surname: "Last name: Ham" },
 9 | 			{ Name: "Matthew", Surname: "Holz", Age: "42", detail: "Person details: Matthew Holz, 42 years, loan officer", detail_Name: "First name: Matthew", detail_Surname: "Last name: Holz" },
10 | 			{ Name: "Jasmine", Surname: "Seidel", Age: "32", detail: "Person details: Jasmine Seidel, 32 years, sales manager", detail_Name: "First name: Jasmine", detail_Surname: "Last name: Seidel" },
11 | 			{ Name: "Ashley", Surname: "Ronan", Age: "33", detail: "Person details: Ashley Ronan, 33 years, cashier", detail_Name: "First name: Ashley", detail_Surname: "Last name: Ronan" },
12 | 			{ Name: "Christiana ", Surname: "Gardella", Age: "35", detail: "Person details: item Christiana Gardella, 35 years, cashier", detail_Name: "First name: Christiana", detail_Surname: "Last name: Gardella" },
13 | 		];
14 | 
15 | 	var sampleModule = angular.module("SampleModule", ['TGrid'])
16 | 		.controller("ctrl", function ctrl($scope) {
17 | 			$scope.dataProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
18 | 			$scope.itemToAdd = { Name: "", Surname: "", Age: "" };
19 | 			$scope.addItem = function (itemToAdd) {
20 | 				var item = {};
21 | 				item.Name = itemToAdd.Name;
22 | 				item.Surname = itemToAdd.Surname;
23 | 				item.Age = itemToAdd.Age;
24 | 				$scope.dataProvider.addItem(item);
25 | 			}
26 | 			$scope.removeItem = function (item) {
27 | 				$scope.dataProvider.removeItem(item);
28 | 			}
29 | 		})
30 | 
31 | 	$(function () {
32 | 	})
33 | 
-------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/FilteringGroupingSortingHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 | 28 |
29 |
30 | 31 | 34 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/ready.md: -------------------------------------------------------------------------------- 1 | ####ready 2 | 3 | Sets a grid after loading handler function, which will be used in your sample view model to set actions after grid loading. The handler function has 1 parameter: an *options*. An *options* is an object of the TesserisPro.TGrid.Options type with initialized TGrid options inside. 4 | 5 | In case Knockout: If the **ready** is defined, you should add a function in your sample view model, with a name, which is the same as the **ready** value. If you don't do this, the exception "Unable to process binding" occurs. 6 | 7 | **Value:** any acceptable value for function name. 8 | 9 | **Default value:** doesn't have default value. 10 | 11 | **Example:** 12 | 13 | #####For Knockout 14 | In HTML: 15 | 16 |
17 | 	
18 |
19 |
20 | ##### 21 | In JavaScript in a knockout view model you should have an observable variable with a name that equals the **ready** setting value. 22 | 23 |
24 |  function vm() {
25 |     var self = this;
26 |     self.itemsProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
27 | 
28 |     self.gridReady = function (options) {
29 |        alert("Grid is ready");
30 | 	}
31 | }
32 | 
33 | 34 | #####For Angular 35 | 36 |
37 | 	
38 | 	
39 | 
40 | ##### 41 | In JavaScript in an angular controller you should have a variable with a name that equals the **ready** setting value. 42 | 43 |
44 |  var sampleModule = angular.module("SampleModule", ['TGrid'])
45 |     .controller("ctrl", function ctrl($scope) {
46 |         $scope.dataProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
47 | 		$scope.gridReady = function (options) {
48 | 			alert("Grid is ready");
49 | 		}
50 | 	})
51 | 
52 | 53 | ##### 54 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/FilteringGroupingSortingMobileHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 | 28 |
29 |
30 | 31 | 34 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/jsAddRemoveItemsWithItemsProvider.cshtml: -------------------------------------------------------------------------------- 1 | 4 | 5 |
 6 | 	
36 | 
37 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/RowsWithVirtualizationHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 |
6 | 7 | 38 | 39 |
40 |
41 |
42 | 43 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "TGrid by Tesseris Pro"; 3 | Layout = "~/Views/Shared/_Layout.cshtml"; 4 | } 5 | 6 |
7 |
8 |
9 |
10 | 11 |
12 |

Fast and Smart

13 |

14 | TGrid is fully compatible with Angular, Knockout.JS, TypeScript and JQuery and has weak dependency on these technologies. This means that you can use TGrid with any this technology or without any. You can even implement your own adapter for your own technology. 15 |

16 |

17 | TGrid supports grouping, sorting, filtering, lazy loading (virtualization) in any combination on any device. 18 |

19 |

20 | TGrid is fully customizable. You can define header template, cell template, footer template, filtering popup, filtering logic and many more features. 21 |

22 |
23 | 24 |
25 |
26 | 27 |
28 |
29 |

Ready for mobile touch devices

30 |

31 | Out-of-the-box, TGrid is ready for touch. TGrid supports all touch events and works perfectly on iPhone, Android, Windows Phone. TGrid automatically changes layout from classical table to detailed list when screen size is changed. 32 |

33 |

34 | All features including virtual scrolling and grouping are working on both layouts. Even scroll position is preserved after layout is changed. 35 |

36 |

37 | Try this link on mobile device. 38 |

39 |
40 |
41 | 42 |
43 | 44 | -------------------------------------------------------------------------------- /TesserisPro.TGrid/SortDescriptor.ts: -------------------------------------------------------------------------------- 1 | //===================================================================================== 2 | // 3 | // The Tesseris Free License 4 | // 5 | // Copyright(c) 2014 Tesseris Pro LLC 6 | // 7 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this 8 | // software and associated documentation files(the "Software"), to deal in the Software 9 | // without restriction, including without limitation the rights to use, copy, modify, 10 | // merge, publish, distribute, sublicense, and / or sell copies of the Software, and to 11 | // permit persons to whom the Software is furnished to do so, subject to the following 12 | // conditions: 13 | 14 | // 1. The above copyright notice and this permission notice shall be included in all 15 | // copies or substantial portions of the Software. 16 | // 17 | // 2. Any software that fully or partially contains or uses materials covered by 18 | // this license shall notify users about this notice and above copyright.The 19 | // notification can be made in "About box" and / or site main web - page footer.The 20 | // notification shall contain name of Tesseris Pro company and name of the Software 21 | // covered by current license. 22 | // 23 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 24 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 25 | // PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 26 | // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 27 | // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 28 | // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 29 | // 30 | //===================================================================================== 31 | 32 | 33 | module TesserisPro.TGrid { 34 | export class SortDescriptor { 35 | constructor(path: string, asc: boolean) { 36 | this.path = path; 37 | this.asc = asc; 38 | } 39 | public path: string; 40 | public asc: boolean; 41 | } 42 | } -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Knockout/DetailsTemplateMobileHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 | 41 |
42 |
43 | 44 | -------------------------------------------------------------------------------- /TesserisPro.TGrid/IFilterPopupViewModel.ts: -------------------------------------------------------------------------------- 1 | //===================================================================================== 2 | // 3 | // The Tesseris Free License 4 | // 5 | // Copyright(c) 2014 Tesseris Pro LLC 6 | // 7 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this 8 | // software and associated documentation files(the "Software"), to deal in the Software 9 | // without restriction, including without limitation the rights to use, copy, modify, 10 | // merge, publish, distribute, sublicense, and / or sell copies of the Software, and to 11 | // permit persons to whom the Software is furnished to do so, subject to the following 12 | // conditions: 13 | 14 | // 1. The above copyright notice and this permission notice shall be included in all 15 | // copies or substantial portions of the Software. 16 | // 17 | // 2. Any software that fully or partially contains or uses materials covered by 18 | // this license shall notify users about this notice and above copyright.The 19 | // notification can be made in "About box" and / or site main web - page footer.The 20 | // notification shall contain name of Tesseris Pro company and name of the Software 21 | // covered by current license. 22 | // 23 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 24 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 25 | // PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 26 | // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 27 | // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 28 | // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 29 | // 30 | //===================================================================================== 31 | 32 | 33 | module TesserisPro.TGrid { 34 | 35 | export interface IFilterPopupViewModel { 36 | onOpen(options: Options, column: ColumnInfo); 37 | onApply(); 38 | onClear(); 39 | onClose(); 40 | getColumnInfo(): ColumnInfo; 41 | onCloseFilterPopup(container: HTMLElement); 42 | } 43 | } -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/gridSettings.md: -------------------------------------------------------------------------------- 1 | ##TGrid settings 2 | 3 | Grid settings are defined in a TGrid template, implemented in a knockout binding or in an angular directive 't-grid'. 4 | Some of TGrid settings have default values and this is not required to define them in the template. One required setting is **provider**. 5 | 6 | #####For Knockout 7 | 8 |
 9 | 	
10 |
11 |
12 | 13 | #####For Angular 14 | 15 |
16 | 	
17 | 	
18 | 
19 | 20 | ##### 21 | 22 | The value of *provider* should be defined in the view model in Knockout and in the controller in Angular. 23 | 24 | A simple **Knockout view model** in JavaScript: 25 | 26 |
27 |     function vm() {
28 |         var self = this;
29 |         self.itemsProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
30 |     };
31 | 
32 | ##### 33 | In **Angular** you define a **main module** with a controller, where a dataProvider is instantiated. 34 | 35 |
36 |     var sampleModule = angular.module("SampleModule", ['TGrid'])
37 | 		 .controller("ctrl", function ctrl($scope) {
38 | 		 	$scope.itemsProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
39 | 		 })
40 | 
41 | ##### 42 | The *items* is an array in JavaScript: 43 | 44 |
45 |     var items = [
46 |         { Name: "John", Surname: "Doe", Age: "33" }
47 |         //... more items
48 |     ];
49 | 
50 | ##### 51 | 52 | The TGrid template with many grid settings: 53 | 54 | #####For Knockout 55 | 56 |
57 | 	
58 |
59 |
60 | 61 | #####For Angular 62 | 63 |
64 | 	
65 | 	
66 | 
67 | 68 | ##### 69 | 70 | 73 | 74 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Views/Home/Angular/DetailsTemplateMobileHtml.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
 4 |     
5 |
6 | 7 | 44 | 45 |
46 |
47 |
48 | 49 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/pageSizeOptions.md: -------------------------------------------------------------------------------- 1 | ####pageSize. 2 | 3 | Defines how many items are displayed on 1 page. 4 | 5 | **Value:** a number from 1 to the total items count. 6 | 7 | **Default value:** *10*. 8 | 9 | An example of the dynamic change the **pageSize** grid setting: 10 | 11 | #####For Knockout 12 | In HTML you should define an **options** setting: 13 | 14 |
15 | 	
16 |
17 |
18 | ##### 19 | In JavaScript in a knockout view model you should have an observable variable with a name that equals the **options** setting value. 20 | You can change the grid options dynamically after the grid loading. In the example below the grid setting **pageSize** 21 | can be changed to *7* using the function 'pageSize'. 22 | 23 |
24 |  function vm() {
25 |     var self = this;
26 |     self.itemsProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
27 |     self.gridOptions = ko.observable();
28 | 
29 |     self.pageSize = function () {
30 |         self.gridOptions().pageSize = 7;
31 |         self.gridOptions().applyHandler();
32 | 	}
33 | }
34 | 
35 | 36 | #####For Angular 37 | In HTML you should define an **options** setting: 38 |
39 | 	
40 | 	
41 | 
42 | ##### 43 | In JavaScript in an angular controller you should have a variable with a name equals the **options** setting value. 44 | You can change the grid options dynamically after the grid loading. In the example below the grid setting **pageSize** 45 | can be changed to *7* using the function 'pageSize'. 46 | 47 |
48 |  var sampleModule = angular.module("SampleModule", ['TGrid'])
49 |     .controller("ctrl", function ctrl($scope) {
50 |         $scope.dataProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
51 |         $scope.gridOptions;
52 | 		$scope.pageSize = function () {
53 |             $scope.gridOptions.pageSize = 7;
54 |             $scope.gridOptions.applyHandler();
55 | 		}
56 | 	})
57 | 
58 | 59 | ##### 60 | 61 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/enablePagingOptions.md: -------------------------------------------------------------------------------- 1 | ####enablePaging 2 | 3 | Enables or disables paging. 4 | 5 | **Value:** *true* or *false*. 6 | 7 | **Default value:** *false*. 8 | 9 | [enablePaging in Grid Settings](#!/GridSettings/enablePaging) 10 | 11 | Example of a dynamic change the **enablePaging** grid setting: 12 | 13 | #####For Knockout 14 | In HTML you should define the **options** setting: 15 | 16 |
17 | 	
18 |
19 |
20 | ##### 21 | In JavaScript in the knockout view model you should have the observable variable with the name equals the **options** setting value. 22 | You can change grid options dynamically after grid loading. In example below, the grid setting **enablePaging** 23 | can be changed using the function 'enablePaging'. 24 | 25 |
26 |  function vm() {
27 |     var self = this;
28 |     self.itemsProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
29 |     self.gridOptions = ko.observable();
30 | 
31 |     self.enablePaging = function () {
32 |         self.gridOptions().enablePaging = true;
33 |         self.gridOptions().applyHandler();
34 | 	}
35 | }
36 | 
37 | 38 | #####For Angular 39 | In HTML you should define the **options** setting: 40 |
41 | 	
42 | 	
43 | 
44 | ##### 45 | In JavaScript in the angular controller you should have variable with the name equals the **options** setting value. 46 | You can change grid options dynamically after grid loading. In example below the grid setting **enablePaging** 47 | can be changed using the function 'enablePaging'. 48 | 49 |
50 |  var sampleModule = angular.module("SampleModule", ['TGrid'])
51 |     .controller("ctrl", function ctrl($scope) {
52 |         $scope.dataProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
53 |         $scope.gridOptions;
54 | 		$scope.enablePaging = function () {
55 |             $scope.gridOptions.enablePaging = true;
56 |             $scope.gridOptions.applyHandler();
57 | 		}
58 | 	})
59 | 
60 | 61 | ##### 62 | 63 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/hideHeaderOptions.md: -------------------------------------------------------------------------------- 1 | ####hideHeader 2 | 3 | You can choose do not render the grid header. If it is set to *true*,the grid header isn't rendered. 4 | 5 | **Value:** *true* or *false* 6 | 7 | **Default value:** *false* 8 | 9 | Example of a dynamic change the **hideHeader** grid setting: 10 | 11 | #####For Knockout 12 | In HTML you should define an **options** setting: 13 |
14 | 	
15 |
16 |
17 | ##### 18 | In JavaScript in the knockout view model you should have an observable variable with the name equals the **options** setting value. 19 | You can change the grid options dynamically after the grid loading. In the example below the grid setting **hideHeader** 20 | can be changed using the function 'hideHeader'. 21 | 22 |
23 |  function vm() {
24 |     var self = this;
25 |     self.itemsProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
26 |     self.gridOptions = ko.observable();
27 | 
28 |     self.hideHeader = function () {
29 |         self.gridOptions().hideHeader = true;
30 |         self.gridOptions().applyHandler();
31 | 	}
32 | }
33 | 
34 | 35 | #####For Angular 36 | In HTML you should define an **options** setting: 37 |
38 | 	
39 | 	
40 | 
41 | ##### 42 | In JavaScript in the angular controller you should have a variable with a name that equals the **options** setting value. 43 | You can change the grid options dynamically after the grid loading. In the example below the grid setting **hideHeader** 44 | can be changed using the function 'hideHeader'. 45 | 46 |
47 |  var sampleModule = angular.module("SampleModule", ['TGrid'])
48 |     .controller("ctrl", function ctrl($scope) {
49 |         $scope.dataProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
50 |         $scope.gridOptions;
51 | 		$scope.hideHeader = function () {
52 |             $scope.gridOptions.hideHeader = true;
53 |             $scope.gridOptions.applyHandler();
54 | 		}
55 | 	})
56 | 
57 | 58 | ##### 59 | 60 | 61 | -------------------------------------------------------------------------------- /TesserisPro.TGrid/IFooterViewModel.ts: -------------------------------------------------------------------------------- 1 | //===================================================================================== 2 | // 3 | // The Tesseris Free License 4 | // 5 | // Copyright(c) 2014 Tesseris Pro LLC 6 | // 7 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this 8 | // software and associated documentation files(the "Software"), to deal in the Software 9 | // without restriction, including without limitation the rights to use, copy, modify, 10 | // merge, publish, distribute, sublicense, and / or sell copies of the Software, and to 11 | // permit persons to whom the Software is furnished to do so, subject to the following 12 | // conditions: 13 | // 14 | // 1. The above copyright notice and this permission notice shall be included in all 15 | // copies or substantial portions of the Software. 16 | // 17 | // 2. Any software that fully or partially contains or uses materials covered by 18 | // this license shall notify users about this notice and above copyright.The 19 | // notification can be made in "About box" and / or site main web - page footer.The 20 | // notification shall contain name of Tesseris Pro company and name of the Software 21 | // covered by current license. 22 | // 23 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 24 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 25 | // PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 26 | // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 27 | // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 28 | // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 29 | // 30 | //===================================================================================== 31 | 32 | 33 | module TesserisPro.TGrid { 34 | 35 | export interface IFooterViewModel { 36 | setTotalCount(totalCount: number); 37 | setSelectedItem(selectedItem: any); 38 | setCurrentPage(currentPage: number); 39 | setTotalPages(totalPages: number); 40 | changePage(pageNumber: string); 41 | goToPreviousPagesBlock(); 42 | goToNextPagesBlock(); 43 | goToFirstPage(); 44 | goToLastPage(); 45 | } 46 | 47 | } -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/enableSortingOptions.md: -------------------------------------------------------------------------------- 1 | ####enableSorting 2 | 3 | Enables or disables Sorting. 4 | 5 | **Value:** *true* or *false*. 6 | 7 | **Default value:** *false*. 8 | 9 | [enableSorting in Grid Settings](#!/GridSettings/enableSorting) 10 | 11 | Example of a dynamic change the **enableSorting** grid setting: 12 | 13 | #####For Knockout 14 | In HTML you should define the **options** setting: 15 | 16 |
17 | 	
18 |
19 |
20 | ##### 21 | In JavaScript in the knockout view model you should have the observable variable with the name equals the **options** settings value. 22 | You can change grid options dynamically after grid loading. In example below, the grid setting **enableSorting** 23 | can be changed using the function 'enableSorting'. 24 | 25 |
26 |  function vm() {
27 |     var self = this;
28 |     self.itemsProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
29 |     self.gridOptions = ko.observable();
30 | 
31 |     self.enableSorting = function () {
32 |         self.gridOptions().enableSorting = true;
33 |         self.gridOptions().applyHandler();
34 | 	}
35 | }
36 | 
37 | 38 | #####For Angular 39 | In HTML you should define the **options** setting: 40 |
41 | 	
42 | 	
43 | 
44 | ##### 45 | In JavaScript in the angular controller you should have variable with the name equals the **options** setting value. 46 | You can change grid options dynamically after grid loading. In example below, the grid setting **enableSorting** 47 | can be changed using the function 'enableSorting'. 48 | 49 |
50 |  var sampleModule = angular.module("SampleModule", ['TGrid'])
51 |     .controller("ctrl", function ctrl($scope) {
52 |         $scope.dataProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
53 |         $scope.gridOptions;
54 | 		$scope.enableSorting = function () {
55 |             $scope.gridOptions.enableSorting = true;
56 |             $scope.gridOptions.applyHandler();
57 | 		}
58 | 	})
59 | 
60 | 61 | ##### 62 | 63 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/pageSlideOptions.md: -------------------------------------------------------------------------------- 1 | ####pageSlide 2 | 3 | Sets how many pages should be visible (to the left and to the right from current) in a pager in the grid footer. 4 | 5 | **Value:** a number from 1 to the total pages count. 6 | 7 | **Default value:** *1*. 8 | 9 | Example of a dynamic change a **pageSlide** grid setting: 10 | 11 | #####For Knockout 12 | In HTML you should define an **options** setting: 13 | 14 |
15 | 	
16 |
17 |
18 | ##### 19 | In JavaScript in a knockout view model you should have an observable variable with a name that equals the **options** setting value. 20 | You can change the grid options dynamically after the grid loading. In the example below the grid setting **pageSlide** 21 | can be changed using the function 'pageSlide'. 22 | 23 |
24 |  function vm() {
25 |     var self = this;
26 |     self.itemsProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
27 |     self.gridOptions = ko.observable();
28 | 
29 |     self.pageSlide = function () {
30 |         self.gridOptions().pageSlide = 5;
31 |         self.gridOptions().applyHandler();
32 | 	}
33 | }
34 | 
35 | 36 | #####For Angular 37 | In HTML you should define an **options** setting: 38 |
39 | 	
40 | 	
41 | 
42 | ##### 43 | In JavaScript in an angular controller you should have a variable with a name that equals to the **options** setting value. 44 | You can change the grid options dynamically after the grid loading. In the example below the grid setting **pageSlide** 45 | can be changed using the function 'pageSlide'. 46 | 47 |
48 |  var sampleModule = angular.module("SampleModule", ['TGrid'])
49 |     .controller("ctrl", function ctrl($scope) {
50 |         $scope.dataProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
51 |         $scope.gridOptions;
52 | 		$scope.pageSlide = function () {
53 |             $scope.gridOptions.pageSlide = 5;
54 |             $scope.gridOptions.applyHandler();
55 | 		}
56 | 	})
57 | 
58 | 59 | ##### 60 | 61 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Scripts/Highlighter/shBrushXml.js: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | ;(function() 18 | { 19 | // CommonJS 20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; 21 | 22 | function Brush() 23 | { 24 | function process(match, regexInfo) 25 | { 26 | var constructor = SyntaxHighlighter.Match, 27 | code = match[0], 28 | tag = new XRegExp('(<|<)[\\s\\/\\?]*(?[:\\w-\\.]+)', 'xg').exec(code), 29 | result = [] 30 | ; 31 | 32 | if (match.attributes != null) 33 | { 34 | var attributes, 35 | regex = new XRegExp('(? [\\w:\\-\\.]+)' + 36 | '\\s*=\\s*' + 37 | '(? ".*?"|\'.*?\'|\\w+)', 38 | 'xg'); 39 | 40 | while ((attributes = regex.exec(code)) != null) 41 | { 42 | result.push(new constructor(attributes.name, match.index + attributes.index, 'color1')); 43 | result.push(new constructor(attributes.value, match.index + attributes.index + attributes[0].indexOf(attributes.value), 'string')); 44 | } 45 | } 46 | 47 | if (tag != null) 48 | result.push( 49 | new constructor(tag.name, match.index + tag[0].indexOf(tag.name), 'keyword') 50 | ); 51 | 52 | return result; 53 | } 54 | 55 | this.regexList = [ 56 | { regex: new XRegExp('(\\<|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\\>|>)', 'gm'), css: 'color2' }, // 57 | { regex: SyntaxHighlighter.regexLib.xmlComments, css: 'comments' }, // 58 | { regex: new XRegExp('(<|<)[\\s\\/\\?]*(\\w+)(?.*?)[\\s\\/\\?]*(>|>)', 'sg'), func: process } 59 | ]; 60 | }; 61 | 62 | Brush.prototype = new SyntaxHighlighter.Highlighter(); 63 | Brush.aliases = ['xml', 'xhtml', 'xslt', 'html']; 64 | 65 | SyntaxHighlighter.brushes.Xml = Brush; 66 | 67 | // CommonJS 68 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; 69 | })(); 70 | -------------------------------------------------------------------------------- /TesserisPro.TGrid.Web/Markdown/enableGroupingOptions.md: -------------------------------------------------------------------------------- 1 | ####enableGrouping 2 | 3 | Enables or disables grouping for grid. 4 | 5 | **Value:** *true* or *false*. 6 | 7 | **Default value:** *false*. 8 | 9 | [enableGrouping in Grid Settings](#!/GridSettings/enableGrouping) 10 | 11 | Example of a dynamic change **enableGrouping** grid setting: 12 | 13 | #####For Knockout 14 | In HTML you should define the **options** setting: 15 | 16 |
17 | 	
18 |
19 |
20 | ##### 21 | In JavaScript in the knockout view model you should have the observable variable with the name equals the **options** settings value. 22 | You can change grid options dynamically after grid loading. In example below, the grid setting **enableGrouping** 23 | can be changed using the function 'enableGrouping'. 24 | 25 |
26 |  function vm() {
27 |     var self = this;
28 |     self.itemsProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
29 |     self.gridOptions = ko.observable();
30 | 
31 |     self.enableGrouping = function () {
32 |         self.gridOptions().enableGrouping = true;
33 |         self.gridOptions().applyHandler();
34 | 	}
35 | }
36 | 
37 | 38 | #####For Angular 39 | In HTML you should define the **options** setting: 40 |
41 | 	
42 | 	
43 | 
44 | ##### 45 | In JavaScript in the angular controller you should have the variable with the name equals the **options** settings value. 46 | You can change grid options dynamically after grid loading. In example below,the grid setting **enableGrouping** 47 | can be changed using the function 'enableGrouping'. 48 | 49 |
50 |  var sampleModule = angular.module("SampleModule", ['TGrid'])
51 |     .controller("ctrl", function ctrl($scope) {
52 |         $scope.dataProvider = new TesserisPro.TGrid.ArrayItemsProvider(items);
53 |         $scope.gridOptions;
54 | 		$scope.enableGrouping = function () {
55 |             $scope.gridOptions.enableGrouping = true;
56 |             $scope.gridOptions.applyHandler();
57 | 		}
58 | 	})
59 | 
60 | 61 | ##### 62 | 63 | -------------------------------------------------------------------------------- /TesserisPro.TGrid/GroupHeaderDescriptor.ts: -------------------------------------------------------------------------------- 1 | //===================================================================================== 2 | // 3 | // The Tesseris Free License 4 | // 5 | // Copyright(c) 2014 Tesseris Pro LLC 6 | // 7 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this 8 | // software and associated documentation files(the "Software"), to deal in the Software 9 | // without restriction, including without limitation the rights to use, copy, modify, 10 | // merge, publish, distribute, sublicense, and / or sell copies of the Software, and to 11 | // permit persons to whom the Software is furnished to do so, subject to the following 12 | // conditions: 13 | 14 | // 1. The above copyright notice and this permission notice shall be included in all 15 | // copies or substantial portions of the Software. 16 | // 17 | // 2. Any software that fully or partially contains or uses materials covered by 18 | // this license shall notify users about this notice and above copyright.The 19 | // notification can be made in "About box" and / or site main web - page footer.The 20 | // notification shall contain name of Tesseris Pro company and name of the Software 21 | // covered by current license. 22 | // 23 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 24 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 25 | // PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 26 | // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 27 | // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 28 | // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 29 | // 30 | //===================================================================================== 31 | 32 | module TesserisPro.TGrid { 33 | export class GroupHeaderDescriptor { 34 | value: string; 35 | level: number; 36 | collapse: boolean; 37 | filterDescriptor: FilterDescriptor; 38 | constructor(value: string, level: number, collapse: boolean, filterDescriptor: FilterDescriptor) { 39 | this.collapse = collapse; 40 | this.value = value; 41 | this.level = level; 42 | this.filterDescriptor = filterDescriptor; 43 | } 44 | } 45 | } --------------------------------------------------------------------------------