Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

This file was deleted.

3 changes: 2 additions & 1 deletion Mvc.JQuery.Datatables.Example/Controllers/HomeController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,10 @@ public DataTablesResult<UserView> GetUsers(DataTablesParam dataTableParam)

public class UserView
{
[DataTables(SortDirection = SortDirection.Ascending)]
public int Id { get; set; }

[DataTables( DisplayName = "Full Name")]
[DataTables(DisplayName = "Full Name", MRenderFunction = "test")]
public string Name { get; set; }


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,13 +76,9 @@
<Reference Include="System.Configuration" />
<Reference Include="System.Web.Services" />
<Reference Include="System.EnterpriseServices" />
<Reference Include="WebActivator, Version=1.5.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\WebActivator.1.5\lib\net40\WebActivator.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Content Include="App_Code\RegisterVirtualPathProvider.cs" />
<Compile Include="App_Start\RegisterDatatablesModelBinder.cs" />
<Compile Include="Controllers\FakeDatabase.cs" />
<Compile Include="Controllers\FriendlyDateHelper.cs" />
<Compile Include="Controllers\HomeController.cs" />
Expand Down
115 changes: 64 additions & 51 deletions Mvc.JQuery.Datatables.Example/Views/Home/Index.cshtml
Original file line number Diff line number Diff line change
@@ -1,98 +1,111 @@
@{
ViewBag.Title = "title";
}
@Html.DataTableIncludes(jqueryUi:true)
@Html.DataTableIncludes(jqueryUi: true)

<script type="text/javascript" src="http://balupton.github.com/jquery-syntaxhighlighter/scripts/jquery.syntaxhighlighter.min.js"></script>
<script type="text/javascript"> $.SyntaxHighlighter.init();</script>

<h1>Strongly typed datatable example</h1>
<pre>
Nuget install-package Mvc.JQuery.Datatables

Nuget install-package <a href="https://github.com/mcintyre321/EmbeddedResourceVirtualPathProvider">EmbeddedResourceVirtualPathProvider</a> <i>or</i> Nuget install-package Mvc.JQuery.Datatables.Templates

</pre>
<p>
In the controller:
Create a controller (see <a style="color: dodgerblue;" href="https://github.com/mcintyre321/mvc.jquery.datatables/blob/master/Mvc.JQuery.Datatables.Example/Controllers/HomeController.cs">example</a>)
</p>
<pre class="highlight">
public DataTablesResult&lt;UserView> GetUsers(DataTablesParam dataTableParam)
public class SomeController : Controller
{
var users = new List&lt;User&gt;
(
Enumerable.Range(1, 100).Select(i => new User(){Id = i, Email = "user" + i + "@@gmail.com", Name = "User" + i})
).AsQueryable();

return DataTablesResult.Create(users, dataTableParam, user => new UserView()
...
public DataTablesResult&lt;UserView> GetUsers(DataTablesParam dataTableParam)
{
Id = user.Id,
Name = user.Name
});
IQueryable&lt;User> users = ... //take a queryable from your database...
var userViews = users.Select(u => new UserView(u)); //...transform it into a view object ...
return DataTablesResult.Create(userViews, dataTableParam) //...and return a DataTablesResult
}
}
</pre>

<p>
and in the view...

<pre class="highlight">
@@using Mvc.JQuery.Datatables
@@using Mvc.JQuery.Datatables.Example.Controllers
and render the partial (see <a href="https://github.com/mcintyre321/mvc.jquery.datatables/blob/master/Mvc.JQuery.Datatables.Example/Views/Home/Index.cshtml">example</a>)

&lt;link type="text/css" href="@@Url.Content("~/Content/DataTables-1.8.2/media/css/demo_table.css")" rel="stylesheet"/>
&lt;script src="@@Url.Content("~/Scripts/DataTables-1.8.2/media/js/jquery.dataTables.js")" type="text/javascript">&lt;/script>
<pre class="highlight">
//include these scripts
&lt;link type="text/css" href="@@Url.Content("~/Content/DataTables-1.8.2/media/css/demo_table.css")" rel="stylesheet"/>
&lt;script src="@@Url.Content("~/Scripts/DataTables-1.8.2/media/js/jquery.dataTables.js")" type="text/javascript">&lt;/script>

@@Html.Partial("DataTable", Html.DataTableVm("table-id", (HomeController h) => h.GetUsers(null)))
@@Html.Partial("DataTable", Html.DataTableVm("table-id", (HomeController h) => h.GetUsers(null)))

can also use

@@Html.Partial("DataTable", Html.DataTableVm("table-id", "/home/getusers", "Id", "Name", "Email"))
</pre>
</pre>
</p>

<h1>Voila</h1>

<h1>Voila!</h1>
<div style="padding: 5px; border: 1px solid grey">
Custom placement for Position filter:
<div id="custom-filter-placeholder-position"></div>
</div>

@using Mvc.JQuery.Datatables
@using Mvc.JQuery.Datatables.Example.Controllers
@using Mvc.JQuery.Datatables.Models
@{
var vm = Html.DataTableVm("table-id", (HomeController h) => h.GetUsers(null));
//vm.JsOptions.Add("iDisplayLength", 25);
//vm.JsOptions.Add("aLengthMenu", new object[] { new[] {5, 10, 25, 250, -1} , new object[] { 5, 10, 25, 250, "All"} });
vm.ColumnFilter = true;
vm.FilterOn("Position", new { sSelector = "#custom-filter-placeholder-position" }).Select("Engineer", "Tester", "Manager")
.FilterOn("Id").NumberRange();
//.FilterOn("Number").CheckBoxes(Enum.GetNames(typeof(Numbers)));
//.FilterOn("Number").CheckBoxes(Enum.GetNames(typeof(Numbers)));
vm.StateSave = true;

//vm.Language = "{ 'sUrl': '" + Url.Content("~/Content/jquery.dataTables.lang.de-DE.txt") + "' }";

vm.Language = "{" +
" 'sProcessing': 'Bitte warten...'," +
" 'sLengthMenu': '_MENU_ Einträge anzeigen'," +
" 'sZeroRecords': 'Keine Einträge vorhanden.'," +
" 'sInfo': '_START_ bis _END_ von _TOTAL_ Einträgen'," +
" 'sInfoEmpty': '0 bis 0 von 0 Einträgen'," +
" 'sInfoFiltered': '(gefiltert von _MAX_ Einträgen)'," +
" 'sInfoPostFix': ''," +
" 'sSearch': 'Suchen'," +
" 'sUrl': ''," +
" 'oPaginate': {" +
" 'sFirst': 'Erster'," +
" 'sPrevious': 'Zurück'," +
" 'sNext': 'Weiter'," +
" 'sLast': 'Letzter'" +
" }" +
"}";
}
@Html.Partial("DataTable", vm)




if (Request.QueryString["lang"] == "de")
{
//vm.Language = "{ 'sUrl': '" + Url.Content("~/Content/jquery.dataTables.lang.de-DE.txt") + "' }";
vm.Language = new Language
{
sProcessing = "Bitte warten...",
sLengthMenu = "_MENU_ Einträge anzeigen",
sZeroRecords = "Keine Einträge vorhanden.",
sInfo = "_START_ bis _END_ von _TOTAL_ Einträgen",
sInfoEmpty = "0 bis 0 von 0 Einträgen",
sInfoFiltered = "(gefiltert von _MAX_ Einträgen)",
sInfoPostFix = "",
sSearch = "Suchen",
sUrl = "",
oPaginate = new Paginate()
{
sFirst = "Erster",
sPrevious = "Zurück",
sNext = "Weiter",
sLast = "Letzter"
}
}.ToJsonString();
}
}

<script type="text/javascript">
function test(data, type, full) {
return '<i>' + data + '</i>';
}
</script>
@Html.Partial("DataTable", vm)

<br />


<div>
@if (Request.QueryString["lang"] != "de")
{
<a href="?lang=de#language-switch" id="language-switch">See table with Language settings applied</a>
}
else
{
<a href="/#language-switch" id="language-switch">Turn off language settings</a>
}
</div>


12 changes: 1 addition & 11 deletions Mvc.JQuery.Datatables.Example/Views/Shared/_Layout.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -54,17 +54,7 @@
</head>
<body>

<div class="topbar">
<div class="topbar-inner">
<div class="container">
<h3>@Html.ActionLink("My MVC Application", "Index", "Home")</h3>
<ul class="nav">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
</ul>
@Html.Partial("_LogOnPartial")
</div>
</div>
</div>

<div class="container">
@RenderBody()
</div>
Expand Down
1 change: 0 additions & 1 deletion Mvc.JQuery.Datatables.Example/packages.config
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,4 @@
<package id="Modernizr" version="2.0.6" />
<package id="Twitter.Bootstrap" version="1.4.0" />
<package id="Twitter.Bootstrap" version="2.0.1" />
<package id="WebActivator" version="1.5" />
</packages>
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
}
var $table = $('#@Model.Id');
var dt = $table.dataTable({
"aaSorting": @Html.Raw(Model.ColumnSortingString),
"bProcessing": true,
"bStateSave": @Html.Raw(Model.StateSave ? "true" : "false"),
"bServerSide": true,
Expand Down
Loading