Hi,
I'm looking for some guidance on the best way to pivot data that is being returned from a .NET MVC controller. I'm able to read it into the regular grid by doing the following :
@(Html.Kendo().Grid<Project.Models.viewMyModel>()
.Name("grid")
.ToolBar(tools => tools.Excel())
.Columns(columns =>
{
columns.Bound(p => p.Field1).Width("auto");
columns.Bound(p => p.Field2).Width("auto");
columns.Bound(p => p.Field3).Width("auto");
columns.Bound(p => p.Field4).Width("auto");
})
.Excel(excel => excel
.FileName("Report1.xlsx")
.ProxyURL("Report?handler=Save")
.AllPages(true)
)
.Height(550)
.AutoBind(false)
.Pageable()
.Sortable()
.Scrollable()
.Resizable(r => r.Columns(true))
.Filterable()
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("GetSummary", "Reports").Data("getParams"))
.PageSize(100)
.ServerOperation(false)
)
.Events(ev => ev.ExcelExport("onExcelExport"))
.NoRecords(n => n.TemplateId("no-records-template-id"))
)
The form post submits some date parameters to the 'GetSummary' controller and returns the json data source for the grid.
I would like to pivot these results so that Field1 results are my column headers and the other fields are my rows. Would PivotGrid be a good option or is that overkill? If so - I wasn't sure how to get it to read the json results as as I did with the grid above. Or would you suggest I pivot/manipulate the data beforehand and continue to read with the traditional grid method?
Thanks,
Adam
At some point the telerik textbox has become a full widget and it generates a script.
I have a form where I need to have an input and it should look like the telerik textbox. I do not want to use the span / input template I just need to have the input alone.
I know I can define my own styling but I would need just a telerik class on the input that if I change something to be applied to all telerik textboxes.
Hi,
I have this code here inside the form and only code for the switch(), :
<div class="create-section">
@(
Html.Kendo().Form<WeighmoreSouth32Web.Models.Role>()
.Name("createForm")
.HtmlAttributes(new { action = "Create", method = "POST" })
.Validatable(v =>
{
v.ValidateOnBlur(true);
v.ValidationSummary(vs => vs.Enable(true).TemplateId("validation-message"));
})
.Items(itemGroup =>
{
itemGroup.AddGroup().Layout("grid").Grid(g => g.Cols(3).Gutter(20)).Label("Role Info").Items(items =>
{
items.Add()
.Field(f => f.RoleName)
.Label(l => l.Text("Role Name"));
items.Add()
.Editor(e => e.Switch().Name("AddCustomer")).Field(f => f.AddCustomer)
.Label(l => l.Text("Role Name*:"));
});
})
)
</div>
it is working fine for the textbox input but when I use switch to pass the true value it is passing it two times one true and other one false. But it does not do the same when switch is off, only passes the false value. Here is a picture of it. I did also tried some Js/Jquery code to bind it but it didn't worked as well. Please help.
https://docs.telerik.com/aspnet-mvc/html-helpers/data-management/listview/binding/ajax-binding
@(Html.Kendo().ListView<ListViewCore.Models.OrderViewModel>() .Name("ListView") .TagName("div") .ClientTemplateId("template") .DataSource(dataSource => dataSource .Ajax() .PageSize(6) .Read(read => read.Action("Orders_Read", "ListView").Data("additionalData")) ) .Pageable() ) <script> function additionalData() { return { firstName: "John", lastName: "Doe" }; } </script>
the .Ajax() instantly doenst work. EVERY sample fails !!!
Anyone have a listview<T> that actually works? the demos and samples all fail.
Hi people,
I have a little big org chart.
https://dojo.telerik.com/OHoTuJiS/2
Does anyone have an idea how to optimize the chart ? How to make it more readable ? the free spaces are so big.
Thanks
Is there anyway to use the DropDownTree without it having to make so many requests.
It looks like it is essentially building the tree one request at a time for each item inside it. This is ridiculously inefficient.
Why can't it be passed a single data structure in a request to build itself, after all a dropdownlist, combobox even a grid can be built with a single request for the IList<data> to databind.
There is little to no documentation on the DropDownTree control which is disappointing.
For a Data structure like this, it makes 6 request which makes no sense.
Could someone at telerik please provide an example of how to create such a data structure that can be passed to the DropDownTree in one request to allow it to render this. Currently this control is not very usable if it needs one request per item.
A treeview will load all it's data with a single request that returns an
var data = (IList<DataModels>)object .ToTreeDataSourceResult(request, e => e.ID, e => e.Parent_ID, e => e);
Does the DropDownTree not have something similar to a TreeDataSource? Why can't it use the same TreeDataSourceResult Object?
Hi all
In my grid k-text-center and k-text-right are not working.
This is the column definition:
cols.Bound(c => c.id).Title("#").HeaderHtmlAttributes(new { @class = "k-text-center !k-justify-content-center" }).HtmlAttributes(new { @class = "k-text-right" });
as per this demo, but i still see the content (both header and column) align on left.
If i use .HtmlAttributes(new { style = "text-align: center" }); it works.
Checking the class I see the problem is the "text-align: inherit;" of k-grid class
Check the image named "Before":
And the image "After"
BR
Cristian
Dears
I'm facing this problem: in an MVC Grid, setted with InCell editing, I have a Foreign Key column. When I edit the FK cell the DDL is not showed.
I checked the documentation and for me it is all ok.
Here some details:
[GRID DEFINITION]
@(Html.Kendo().Grid<MCP310.Models.MCP_Detail>()
.Name("Grid_MCP_Detail_" + Model.id)
.ToolBar(toolbar =>
{
toolbar.Create();
toolbar.Save();
})
.Columns(columns =>
{
columns.Bound(c => c.id).Hidden(true);
columns.Command(command => command.Destroy().IconClass("k-icon k-i-delete").Text(" ")).Width(56).MinResizableWidth(56);
columns.Bound(c => c.codiceInterno).Width(200).Sticky(true);
columns.Group(g => g
.Title("A cura del personale Marketing o dei Service Specialist Supervisor")
.Columns(mkss =>
{
mkss.Bound(c => c.descrizione).Width(300);
mkss.ForeignKey(c => c.UMBase, ds => ds.Read(r => r.Action("unitaMisura", "MCPDetailGrid")), "idMSEHI", "descrMSEHL").Width(300);
//mkss.Bound(c => c.UMBase).Width(300);
mkss.Bound(c => c.gruppoMerci).Width(300);
mkss.Bound(c => c.lineaProdotto).Width(300);
mkss.Bound(c => c.codiceTipo).Width(300);
mkss.Bound(c => c.voceCE).Width(300);
mkss.Bound(c => c.codiceValore).Width(300);
mkss.Bound(c => c.gestLottiMatricola).Width(300);
mkss.Bound(c => c.codiceEDMA).Width(150);
mkss.Bound(c => c.nomeFornitore).Width(150);
mkss.Bound(c => c.codiceProdottoFornitore).Width(150);
mkss.Bound(c => c.codiceCategoriaFornitore).Width(150);
mkss.Bound(c => c.pezziConf).Width(150);
mkss.Bound(c => c.infiammabile).Width(150);
mkss.Bound(c => c.ghiaccioSecco).Width(150);
mkss.Bound(c => c.ggMinEntrata).Width(150);
mkss.Bound(c => c.ggMinUscita).Width(150);
mkss.Bound(c => c.UMVendita).Width(150);
mkss.Bound(c => c.rapportoUMBV).Width(150);
mkss.Bound(c => c.royalty).Width(150);
}));
columns.Group(g => g
.Title("A cura del Controllo di Gestione")
.Columns(ctgs =>
{
ctgs.Bound(c => c.costoAcquisto).Title("Costo acquisto").Width(150);
ctgs.Bound(c => c.valutaFatturazione).Title("Valuta di fatturazione").Width(150);
ctgs.Bound(c => c.codValuta).Title("Cod. Valuta").Width(150);
ctgs.Bound(c => c.prezzoMinimo).Title("Prezzo Minimo").Width(150);
ctgs.Bound(c => c.percProvvMinima).Title("% Provv minima").Width(150);
ctgs.Bound(c => c.prezzoSuggerito).Title("Prezzo Suggerito").Width(150);
}));
columns.Group(g => g
.Title("A cura del MKTG o dei SSS")
.Columns(mkss =>
{
mkss.Bound(c => c.costoAcquisto).Title("Costo acquisto").Width(150);
mkss.Bound(c => c.valutaFatturazione).Title("Valuta di fatturazione").Width(150);
mkss.Bound(c => c.codValuta).Title("Cod. Valuta").Width(150);
mkss.Bound(c => c.prezzoMinimo).Title("Prezzo Minimo").Width(150);
mkss.Bound(c => c.percProvvMinima).Title("% Provv minima").Width(150);
mkss.Bound(c => c.prezzoListino).Title("Prezzo Listino").Width(150);
mkss.Bound(c => c.percProvvMassima).Title("% Provv max").Width(150);
}));
columns.Group(g => g
.Title("A cura di AAT")
.Columns(aat =>
{
aat.Bound(c => c.codiceWindSat).Title("Cod. Winsat").Width(150);
}));
columns.Bound(c => c.idStato).Title("Stato").Width(150);
})
.Editable(editable => {
editable.Mode(GridEditMode.InCell);
editable.CreateAt(GridInsertRowPosition.Bottom);
})
.Sortable()
.Scrollable()
.Resizable(resizable => resizable.Columns(true))
.Filterable()
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.ServerOperation(false)
.Events(events => events.Error("error_handler"))
.Model(model => model.Id(p => p.id))
.Read(action => action.Action("Read", "MCPDetailGrid", new { idHeader = Model.id }))
.Create(action => action.Action("Create", "MCPDetailGrid", new { idHeader = Model.id }))
.Update(action => action.Action("Update", "MCPDetailGrid"))
.Destroy(action => action.Action("Destroy", "MCPDetailGrid"))
)
.NoRecords("Nessun prodotto presente")
.Navigatable()
)}
[~/Views/Shared/EditorTemplates/GridForeignKey.cshtml]
@(
Html.Kendo().DropDownListFor(m => m)
.BindTo((SelectList)ViewData[ViewData.TemplateInfo.GetFullHtmlFieldName("") + "_Data"])
.ValuePrimitive(true)
)
I tried with/without ValuePrimitive and with/without @model object
[Models]
Where the data are used:
[MetadataType(typeof(MCP_DetailMetaData))]....
Where the data come from:
public partial class MCP_Unita_Misura
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public MCP_Unita_Misura()
{
this.MCP_Detail = new HashSet<MCP_Detail>();
}
public string idMSEHI { get; set; }
public string idMSEH3 { get; set; }
public string idMSEH6 { get; set; }
public string MSEHT { get; set; }
public string descrMSEHL { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<MCP_Detail> MCP_Detail { get; set; }
}
[Other]
The FK exists also in the DB and in the Model
Thanks in advance
Cristian