Skip to content

Commit 4216485

Browse files
committed
Tweak for docs and model for language
1 parent 66268e3 commit 4216485

File tree

5 files changed

+89
-59
lines changed

5 files changed

+89
-59
lines changed
Lines changed: 55 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
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

@@ -10,89 +11,95 @@
1011
Nuget install-package Mvc.JQuery.Datatables
1112
</pre>
1213
<p>
13-
In the controller:
14+
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>)
1415
</p>
1516
<pre class="highlight">
16-
public DataTablesResult&lt;UserView> GetUsers(DataTablesParam dataTableParam)
17+
public class SomeController : Controller
1718
{
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()
19+
...
20+
public DataTablesResult&lt;UserView> GetUsers(DataTablesParam dataTableParam)
2421
{
25-
Id = user.Id,
26-
Name = user.Name
27-
});
22+
IQueryable&lt;User> users = ... //take a queryable from your database...
23+
var userViews = users.Select(u => new UserView(u)); //...transform it into a view object ...
24+
return DataTablesResult.Create(userViews, dataTableParam) //...and return a DataTablesResult
25+
}
2826
}
2927
</pre>
3028

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

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>
32+
<pre class="highlight">
33+
//include these scripts
34+
&lt;link type="text/css" href="@@Url.Content("~/Content/DataTables-1.8.2/media/css/demo_table.css")" rel="stylesheet"/>
35+
&lt;script src="@@Url.Content("~/Scripts/DataTables-1.8.2/media/js/jquery.dataTables.js")" type="text/javascript">&lt;/script>
4036

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

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

49-
<h1>Voila</h1>
50-
42+
<h1>Voila!</h1>
5143
<div style="padding: 5px; border: 1px solid grey">
5244
Custom placement for Position filter:
5345
<div id="custom-filter-placeholder-position"></div>
5446
</div>
5547

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

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

88+
<br />
9089

9190

9291

9392

9493

95-
96-
94+
<div>
95+
@if (Request.QueryString["lang"] != "de")
96+
{
97+
<a href="?lang=de#language-switch" id="language-switch">See table with Language settings applied</a>
98+
}
99+
else
100+
{
101+
<a href="/#language-switch" id="language-switch">Turn off language settings</a>
102+
}
103+
</div>
97104

98105

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/DataTableConfigVm.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Linq;
44
using System.Web.Routing;
55
using System.Web.Script.Serialization;
6+
using Mvc.JQuery.Datatables.Models;
67

78
namespace Mvc.JQuery.Datatables
89
{
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
using System.Web.Script.Serialization;
2+
3+
namespace Mvc.JQuery.Datatables.Models
4+
{
5+
public class Paginate
6+
{
7+
public string sFirst { get; set; }
8+
public string sPrevious { get; set; }
9+
public string sNext { get; set; }
10+
public string sLast { get; set; }
11+
}
12+
13+
public class Language
14+
{
15+
public string sProcessing { get; set; }
16+
public string sLengthMenu { get; set; }
17+
public string sZeroRecords { get; set; }
18+
public string sInfo { get; set; }
19+
public string sInfoEmpty { get; set; }
20+
public string sInfoFiltered { get; set; }
21+
public string sInfoPostFix { get; set; }
22+
public string sSearch { get; set; }
23+
public string sUrl { get; set; }
24+
public Paginate oPaginate { get; set; }
25+
26+
public string ToJsonString()
27+
{
28+
return new JavaScriptSerializer().Serialize(this);
29+
}
30+
}
31+
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
<Compile Include="DataTablesResult.cs" />
6262
<Compile Include="DataTableConfigVm.cs" />
6363
<Compile Include="DynamicLinq\DynamicLinq.cs" />
64+
<Compile Include="Models\oLanguage.cs" />
6465
<Compile Include="Properties\AssemblyInfo.cs" />
6566
<Compile Include="StaticReflectionHelper.cs" />
6667
<Compile Include="StringTransformers.cs" />

0 commit comments

Comments
 (0)