Skip to content

Commit 4b9f4c8

Browse files
Merge pull request mcintyre321#2 from mcintyre321/master
Test
2 parents b671314 + d91d356 commit 4b9f4c8

20 files changed

+160
-121
lines changed

Mvc.JQuery.Datatables.Example/App_Start/RegisterDatatablesModelBinder.cs

Lines changed: 0 additions & 13 deletions
This file was deleted.

Mvc.JQuery.Datatables.Example/Controllers/HomeController.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,10 @@ public DataTablesResult<UserView> GetUsers(DataTablesParam dataTableParam)
5151

5252
public class UserView
5353
{
54+
[DataTables(SortDirection = SortDirection.Ascending)]
5455
public int Id { get; set; }
5556

56-
[DataTables( DisplayName = "Full Name")]
57+
[DataTables(DisplayName = "Full Name", MRenderFunction = "test")]
5758
public string Name { get; set; }
5859

5960

Mvc.JQuery.Datatables.Example/Mvc.JQuery.Datatables.Example.csproj

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,9 @@
7676
<Reference Include="System.Configuration" />
7777
<Reference Include="System.Web.Services" />
7878
<Reference Include="System.EnterpriseServices" />
79-
<Reference Include="WebActivator, Version=1.5.0.0, Culture=neutral, processorArchitecture=MSIL">
80-
<HintPath>..\packages\WebActivator.1.5\lib\net40\WebActivator.dll</HintPath>
81-
</Reference>
8279
</ItemGroup>
8380
<ItemGroup>
8481
<Content Include="App_Code\RegisterVirtualPathProvider.cs" />
85-
<Compile Include="App_Start\RegisterDatatablesModelBinder.cs" />
8682
<Compile Include="Controllers\FakeDatabase.cs" />
8783
<Compile Include="Controllers\FriendlyDateHelper.cs" />
8884
<Compile Include="Controllers\HomeController.cs" />
Lines changed: 64 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,98 +1,111 @@
11
@{
22
ViewBag.Title = "title";
33
}
4-
@Html.DataTableIncludes(jqueryUi:true)
4+
@Html.DataTableIncludes(jqueryUi: true)
5+
56
<script type="text/javascript" src="http://balupton.github.com/jquery-syntaxhighlighter/scripts/jquery.syntaxhighlighter.min.js"></script>
67
<script type="text/javascript"> $.SyntaxHighlighter.init();</script>
78

89
<h1>Strongly typed datatable example</h1>
910
<pre>
1011
Nuget install-package Mvc.JQuery.Datatables
12+
13+
Nuget install-package <a href="https://github.com/mcintyre321/EmbeddedResourceVirtualPathProvider">EmbeddedResourceVirtualPathProvider</a> <i>or</i> Nuget install-package Mvc.JQuery.Datatables.Templates
14+
1115
</pre>
1216
<p>
13-
In the controller:
17+
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>)
1418
</p>
1519
<pre class="highlight">
16-
public DataTablesResult&lt;UserView> GetUsers(DataTablesParam dataTableParam)
20+
public class SomeController : Controller
1721
{
18-
var users = new List&lt;User&gt;
19-
(
20-
Enumerable.Range(1, 100).Select(i => new User(){Id = i, Email = "user" + i + "@@gmail.com", Name = "User" + i})
21-
).AsQueryable();
22-
23-
return DataTablesResult.Create(users, dataTableParam, user => new UserView()
22+
...
23+
public DataTablesResult&lt;UserView> GetUsers(DataTablesParam dataTableParam)
2424
{
25-
Id = user.Id,
26-
Name = user.Name
27-
});
25+
IQueryable&lt;User> users = ... //take a queryable from your database...
26+
var userViews = users.Select(u => new UserView(u)); //...transform it into a view object ...
27+
return DataTablesResult.Create(userViews, dataTableParam) //...and return a DataTablesResult
28+
}
2829
}
2930
</pre>
3031

3132
<p>
32-
and in the view...
33-
34-
<pre class="highlight">
35-
@@using Mvc.JQuery.Datatables
36-
@@using Mvc.JQuery.Datatables.Example.Controllers
33+
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>)
3734

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

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

43-
can also use
44-
45-
@@Html.Partial("DataTable", Html.DataTableVm("table-id", "/home/getusers", "Id", "Name", "Email"))
46-
</pre>
42+
</pre>
4743
</p>
4844

49-
<h1>Voila</h1>
50-
45+
<h1>Voila!</h1>
5146
<div style="padding: 5px; border: 1px solid grey">
5247
Custom placement for Position filter:
5348
<div id="custom-filter-placeholder-position"></div>
5449
</div>
5550

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

68-
//vm.Language = "{ 'sUrl': '" + Url.Content("~/Content/jquery.dataTables.lang.de-DE.txt") + "' }";
69-
70-
vm.Language = "{" +
71-
" 'sProcessing': 'Bitte warten...'," +
72-
" 'sLengthMenu': '_MENU_ Einträge anzeigen'," +
73-
" 'sZeroRecords': 'Keine Einträge vorhanden.'," +
74-
" 'sInfo': '_START_ bis _END_ von _TOTAL_ Einträgen'," +
75-
" 'sInfoEmpty': '0 bis 0 von 0 Einträgen'," +
76-
" 'sInfoFiltered': '(gefiltert von _MAX_ Einträgen)'," +
77-
" 'sInfoPostFix': ''," +
78-
" 'sSearch': 'Suchen'," +
79-
" 'sUrl': ''," +
80-
" 'oPaginate': {" +
81-
" 'sFirst': 'Erster'," +
82-
" 'sPrevious': 'Zurück'," +
83-
" 'sNext': 'Weiter'," +
84-
" 'sLast': 'Letzter'" +
85-
" }" +
86-
"}";
87-
}
88-
@Html.Partial("DataTable", vm)
89-
90-
91-
9264

65+
if (Request.QueryString["lang"] == "de")
66+
{
67+
//vm.Language = "{ 'sUrl': '" + Url.Content("~/Content/jquery.dataTables.lang.de-DE.txt") + "' }";
68+
vm.Language = new Language
69+
{
70+
sProcessing = "Bitte warten...",
71+
sLengthMenu = "_MENU_ Einträge anzeigen",
72+
sZeroRecords = "Keine Einträge vorhanden.",
73+
sInfo = "_START_ bis _END_ von _TOTAL_ Einträgen",
74+
sInfoEmpty = "0 bis 0 von 0 Einträgen",
75+
sInfoFiltered = "(gefiltert von _MAX_ Einträgen)",
76+
sInfoPostFix = "",
77+
sSearch = "Suchen",
78+
sUrl = "",
79+
oPaginate = new Paginate()
80+
{
81+
sFirst = "Erster",
82+
sPrevious = "Zurück",
83+
sNext = "Weiter",
84+
sLast = "Letzter"
85+
}
86+
}.ToJsonString();
87+
}
88+
}
9389

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

97+
<br />
9598

9699

100+
<div>
101+
@if (Request.QueryString["lang"] != "de")
102+
{
103+
<a href="?lang=de#language-switch" id="language-switch">See table with Language settings applied</a>
104+
}
105+
else
106+
{
107+
<a href="/#language-switch" id="language-switch">Turn off language settings</a>
108+
}
109+
</div>
97110

98111

Mvc.JQuery.Datatables.Example/Views/Shared/_Layout.cshtml

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -54,17 +54,7 @@
5454
</head>
5555
<body>
5656

57-
<div class="topbar">
58-
<div class="topbar-inner">
59-
<div class="container">
60-
<h3>@Html.ActionLink("My MVC Application", "Index", "Home")</h3>
61-
<ul class="nav">
62-
<li>@Html.ActionLink("Home", "Index", "Home")</li>
63-
</ul>
64-
@Html.Partial("_LogOnPartial")
65-
</div>
66-
</div>
67-
</div>
57+
6858
<div class="container">
6959
@RenderBody()
7060
</div>

Mvc.JQuery.Datatables.Example/packages.config

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,4 @@
1717
<package id="Modernizr" version="2.0.6" />
1818
<package id="Twitter.Bootstrap" version="1.4.0" />
1919
<package id="Twitter.Bootstrap" version="2.0.1" />
20-
<package id="WebActivator" version="1.5" />
2120
</packages>

Mvc.JQuery.Datatables.Templates/Views/Shared/DataTable.cshtml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
}
3636
var $table = $('#@Model.Id');
3737
var dt = $table.dataTable({
38+
"aaSorting": @Html.Raw(Model.ColumnSortingString),
3839
"bProcessing": true,
3940
"bStateSave": @Html.Raw(Model.StateSave ? "true" : "false"),
4041
"bServerSide": true,

0 commit comments

Comments
 (0)