or
@model DemoRicerca_Interno.Models.RicercaClienteObject
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<
div
>
<
div
id
=
"ricerca"
></
div
>
<
div
>Query : @Html.EditorFor(x => x.Query)</
div
>
<
div
>Match Exact : @Html.EditorFor(x => x.MatchExact)</
div
>
<
div
>AncheEstinti : @Html.EditorFor(x => x.AncheEstinti)</
div
>
<
button
id
=
"showGrid"
>Carica</
button
><
br
/>
<
script
type
=
"text/javascript"
>
$("#showGrid").click(function () {
$("#grid").data("kendoGrid").dataSource.read();
});
</
script
>
<
div
id
=
"content"
>
@(Html.Kendo()
.Grid<
DemoRicerca_Interno.Models.Rapporto
>()
.AutoBind(false)
.Name("grid")
.Columns(columns =>
{
columns.Bound(x => x.IDInterno).Visible(false);
columns.Bound(x => x.IDRapporto);
columns.Bound(x => x.Descr);
columns.Bound(x => x.Filiale);
columns.Bound(x => x.RM);
columns.Bound(x => x.NDG);
})
.DataSource(ds => ds
.Ajax()
.Read(read =>
{
read.Action("GetClienti", "Ricerca");
//new DemoRicerca_Interno.Models.RicercaClienteObject { Query = Model.Query, MatchExact = Model.MatchExact, AncheEstinti = Model.AncheEstinti });
}
)
)
)
</
div
>
</
div
>
public
class
RicercaController : Controller
{
public
ActionResult Index()
{
ViewData.Model =
new
RicercaClienteObject();
return
View();
}
public
ActionResult GetClienti([DataSourceRequest] DataSourceRequest request, RicercaClienteObject ricerca)
{
xxxEntities model =
new
xxxEntities();
var res = model_SP_GET_INTESTATARIO(xxx, ricerca.Query, ricerca.MatchExact, xxx, DateTime.Now.AddDays(-1), 0, ricerca.AncheEstinti,
null
,
null
);
List<Rapporto> lst =
new
List<Rapporto>();
foreach
(var item
in
res)
{
var rapporto =
new
Rapporto();
rapporto.Descr = item.INTESTAZIONE.Trim();
rapporto.Filiale = item.FILIALE.Trim();
rapporto.IDRapporto = item.CODICE_RAPPORTO.Trim();
rapporto.NDG = item.NDG.Trim();
rapporto.RM = item.RM.Trim();
rapporto.IDInterno = item.ID_RAPPORTO;
lst.Add(rapporto);
}
var result = lst.ToDataSourceResult(request);
return
Json(result);
}
}
public
class
RicercaClienteObject
{
[DataType( System.ComponentModel.DataAnnotations.DataType.Text)]
public
string
Query {
get
;
set
; }
public
int
AncheEstinti {
get
;
set
; }
public
int
MatchExact {
get
;
set
; }
}
public
class
Rapporto
{
public
string
IDRapporto {
get
;
set
; }
public
string
Descr {
get
;
set
; }
public
int
? IDInterno {
get
;
set
; }
public
string
Filiale {
get
;
set
; }
public
string
RM {
get
;
set
; }
public
string
StatoRapporto {
get
;
set
; }
public
string
NDG {
get
;
set
; }
public
string
Servizio {
get
;
set
; }
public
int
? IDCliente {
get
;
set
; }
}
@(Html.Kendo().Grid<
Contact
>()
.Name("ContactGrid")
.Columns(columns =>
{
columns.Bound(x => x.LastName).Title("Last Name");
columns.Bound(x => x.FirstName).Title("First Name");
columns.Command(command => { command.Edit(); command.Destroy(); }).Title("Actions").Width(200);
})
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(100)
.Model(model => model.Id(p => p.Id))
.Read("_Read", "Clients")
.Update("_Update", "Clients")
.Create("_Create", "Clients")
.Destroy("_Destroy", "Clients")
)
.ToolBar(toolbar => toolbar.Create().Text("Add New Client"))
.Editable(editable => editable.Mode(GridEditMode.PopUp).DisplayDeleteConfirmation(true))
.Sortable()
.Scrollable(scrollable => scrollable.Virtual(true).Height(280))
.Events(events => events.Edit("edit"))
)
<
div
class
=
"mvceditor-label"
>
@Html.LabelFor(x => x.State)
</
div
>
<
div
class
=
"mvceditor-field"
>
@Html.Kendo().DropDownListFor(x => x.State).BindTo(new SelectList(@ViewBag.States, "Abbreviation", "Name"))
</
div
>
<
div
class
=
"mvceditor-label"
>
@Html.LabelFor(x => x.LabId)
</
div
>
<
div
class
=
"mvceditor-field"
>
@Html.DropDownListFor(x => x.LabId, new SelectList(@ViewBag.Labs, "Id", "Description"))
</
div
>
<
div
class
=
"mvceditor-label"
>
@Html.LabelFor(x => x.TierId)
</
div
>
<
div
class
=
"mvceditor-field"
>
@Html.Kendo().DropDownListFor(x => x.TierId).BindTo(new SelectList(@ViewBag.Tiers, "Id", "Description"))
@Html.ValidationMessageFor(x => x.TierId)
</
div
>
public class Contact
{
public int? Id { get; set; }
[Required(ErrorMessage="Required")]
[DisplayName("First Name *")]
public string FirstName { get; set; }
[Required(ErrorMessage = "Required")]
[DisplayName("Last Name *")]
public string LastName { get; set; }
[Required(ErrorMessage = "Required")]
[DisplayName("User Tier *")]
public int? TierId { get; set; }
public string State { get; set; }
[DisplayName("Default Lab")]
public int? LabId { get; set; }
public string LastUpdateBy { get; set; }
}
public ActionResult Index()
{
SetupLists();
return View();
}
public ActionResult _Read([DataSourceRequest] DataSourceRequest request)
{
return Json(contactsService.Get().ToDataSourceResult(request));
}
[HttpPost]
public ActionResult _Create([DataSourceRequest] DataSourceRequest request, Contact contact)
{
if (ModelState.IsValid)
{
contact.LastUpdateBy = User.Identity.Name;
contactsService.Create(contact);
}
return Json(new[] { contact }.ToDataSourceResult(request, ModelState));
}
[HttpPost]
public ActionResult _Update([DataSourceRequest] DataSourceRequest request, Contact contact)
{
if (ModelState.IsValid)
{
contact.LastUpdateBy = User.Identity.Name;
contactsService.Update(contact);
}
return Json(new[] { contact }.ToDataSourceResult(request, ModelState));
}
private void SetupLists()
{
IList<
Lab
> labs = labsService.Get();
labs.Insert(0, new Lab { Description = "" });
IList<
Tier
> tiers = tiersService.Get();
tiers.Insert(0, new Tier { Description = "" });
IList<
Institution
> institutions = institutionsService.Get();
institutions.Insert(0, new Institution { Description = "" });
IList<
Contact
> contacts = contactsService.Get();
contacts.Insert(0, new Contact { FullName = "" });
IList<
Grant
> grants = grantsService.Get();
grants.Insert(0, new Grant { Description = "" });
IList<
State
> states = statesService.Get();
states.Insert(0, new State { Name = "" });
ViewBag.Labs = labs;
ViewBag.Tiers = tiers;
ViewBag.Institutions = institutions;
ViewBag.Contacts = contacts;
ViewBag.Grants = grants;
ViewBag.States = states;
}