Hi,
I want to display a message when i click on a row in radgrid.
With the code, i have, i can display the message. Now, if the user clicks on OK, I want to perform one method and if he cancels, i want to perform another method.
How do i know what the user clicked on?
<
telerik:RadGrid
runat
=
"server"
ID
=
"rg_OnlineDownloads"
AutoGenerateColumns
=
"false"
OnNeedDataSource
=
"rg_OnlineDownloads_NeedDataSource"
onitemcommand
=
"rg_OnlineDownloads_ItemCommand"
>
<
MasterTableView
DataKeyNames
=
"HouseholdID"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"ApplicationDate"
HeaderText
=
"ApplicationDate"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"HouseholdID"
HeaderText
=
"HouseholdID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"ClientName"
HeaderText
=
"ClientName"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"FamilyMembers"
HeaderText
=
"#nbrs"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"ClientAddress"
HeaderText
=
"ClientAddress"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"CellPhone"
HeaderText
=
"CellPhone"
>
</
telerik:GridBoundColumn
>
<
telerik:GridButtonColumn
UniqueName
=
"Transfer"
CommandName
=
"Transfer"
ConfirmText
=
""
ConfirmDialogType
=
"RadWindow"
ConfirmTitle
=
"Transfer to Intake"
ButtonType
=
"PushButton"
> </
telerik:GridButtonColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
Code Behind:
protected
void
rg_OnlineDownloads_ItemCommand(
object
sender, GridCommandEventArgs e)
{
if
(e.CommandName ==
"Transfer"
)
// CommandName of LinkButton
{
GridDataItem dataItem = e.Item
as
GridDataItem;
string
hHoldID = dataItem[
"HouseholdID"
].Text;
string
clntNm = dataItem[
"ClientName"
].Text;
(rg_OnlineDownloads.MasterTableView.GetColumn(
"Transfer"
)
as
GridButtonColumn).ConfirmText =
"Do you want to transfer "
+ clntNm +
" ? "
;
}
}
Thanks in Advance
Hi,
I have a problem removing a newly added row or clearing updated values during update when calling Ajax Create or Update methods. I've tried e.sender.cancelChanges(); and also the code below with no luck. The error alert shows on the screen but the row sticks in the grid after hitting OK on the error window prompt. Is there a reason why the cancel changes is not updating the Json dataset after the error?
Error JS:
<script type=
"text/javascript"
>
function
error_handler(e) {
if
(e.errors) {
var
message =
"Errors:\n"
;
$.each(e.errors,
function
(key, value) {
if
(
'errors'
in
value) {
$.each(value.errors,
function
() {
message +=
this
+
"\n"
;
});
}
});
//Display the message
alert(message);
// Cancel the changes.
var
grid = $(
"#meterGrid"
).data(
"kendoGrid"
);
grid.cancelChanges();
}
}
</script>
My grid:
@(Html.Kendo().Grid<
MeterSerialsViewModel
>()
.Name("meterGrid")
.Columns(columns =>
{
columns.Command(command => { command.Edit(); }).Width(60).Visible(Model.IsEditable);
columns.Bound(o => o.MeterSerialId);
columns.Bound(o => o.VendorAccountId).Visible(false);
columns.Bound(o => o.MeterSerialName).Width(300);
columns.ForeignKey(o => o.CommodityId, (System.Collections.IEnumerable)ViewData["CommodityTypes"], "CommodityTypeId", "Name").EditorTemplateName("GridForeignKeyEditor").Title("Commodity").Width(250);
columns.Bound(o => o.IsActive).ClientTemplate("<
input
type
=
'checkbox'
disabled
=
'disabled'
#= IsActive ?
checked
=
'checked'
:
checked
=
''
# />");
columns.Bound(o => o.CreatedOn).Width(180).Format("{0:MM/dd/yyyy hh:mm tt}");
})
.ToolBar(toolbar =>
{
if (Model.IsEditable)
{
toolbar.Create();
}
})
.Pageable()
.Sortable()
.Editable(editable => editable.Mode(GridEditMode.InLine).Enabled(Model.IsEditable))
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(false)
.PageSize(10)
.Events(events => { events.Error("error_handler"); })
.Model(model =>
{
model.Id(o => o.MeterSerialId);
model.Field(o => o.MeterSerialId).Editable(false);
model.Field(o => o.VendorAccountId).DefaultValue(Model.VendorAccountId).Editable(false);
model.Field(o => o.IsActive).DefaultValue(true);
model.Field(o => o.CreatedBy).Editable(false);
model.Field(o => o.CreatedOn).Editable(false);
})
.Sort(s => { s.Add("CommodityTypeName").Ascending(); })
.Read(r => r.Action("GetMeterSerials", "VendorAccounts", new { vendorAccountId = Model.VendorAccountId }))
.Create(c => c.Action("CreateMeterSerial", "VendorAccounts", new { vendorAccountId = Model.VendorAccountId }))
.Update(u => u.Action("UpdateMeterSerial", "VendorAccounts")))
)
Controller to exception testing error prompt:
catch
(Exception ex)
{
ModelState.AddModelError(
string
.Empty, ex.ToString());
return
Json(
new
[] { model }.ToDataSourceResult(request, ModelState));
}
Hello,
I'm having problems creating multiple grids split by a column value, when the view is rendered I can see the the json in the script tags but nothing is rendered. Teh following works as repeating tables without using a kendo grid,
MODEL:
public class tblProducts
{
//SQL table is named tblProducts
[Key]
public int ID { get; set; }
public DateTime Date { get; set; }
public string Field1 { get; set; }
public string Field2 { get; set; }
public string Product { get; set; } //<<
Want
separate tables split by this field
}
public class IndexViewModel
{
public List<tblProducts> Products { get; set; }
public List<
string
> Titles { get; set; }
Public IndexViewModel()
{
Products = new List<
tblProducts
>();
Titles = new List<
string
>();
}
}
CONTROLLER:
public class tblProductsController : Controller
{
public async Task<
IActionResult
> Index()
{
var allProducts = await _context.tblProducts.ToListAsync();
var titles = allProducts.Select(x => x.Product).Distinct();
var model = new Models.IndexViewModel()
{
Products = allProducts,
titles = titles
};
return View(model);
}
}
VIEW:
@model ProjectMVC.Models.IndexViewModel
@{
ViewData["Title"] = "Index";
}
<
h2
>Index</
h2
>
<
p
>
<
a
asp-action
=
"Create"
>Create New</
a
>
</
p
>
@{
foreach (var title in Model.Titles)
var products = Model.Products.Where(x => x.Product == title);
tblProducts product = Model.Products.First(x => x.Prodcut == title);
<
text
>
<
table
class
=
"table"
>
<
thead
>
<
tr
>
<
th
>
@Html.DisplayNameFor(model => product.Date)
</
th
>
<
th
>
@Html.DisplayNameFor(model => product.Field1)
</
th
>
<
th
>
@Html.DisplayNameFor(model => product.Field2)
</
th
>
<
th
>
@Html.DisplayNameFor(model => product.Product)
</
th
>
<
th
></
th
>
</
tr
>
</
thead
>
<
tbody
>
@foreach (var item in products)
{
<
tr
>
<
td
>
@Html.DisplayFor(modelItem => item.Date)
</
td
>
<
td
>
@Html.DisplayFor(modelItem => item.Field1)
</
td
>
<
td
>
@Html.DisplayFor(modelItem => item.Field2)
</
td
>
<
td
>
@Html.DisplayFor(modelItem => item.Product)
</
td
>
<
td
>
<
a
asp-action
=
"Edit"
asp-route-id
=
"@item.ID"
>Edit</
a
> |
<
a
asp-action
=
"Details"
asp-route-id
=
"@item.ID"
>Details</
a
> |
<
a
asp-action
=
"Delete"
asp-route-id
=
"@item.ID"
>Delete</
a
>
</
td
>
</
tr
>
}
</
tbody
>
</
table
>
</
text
>
}
}
How do I set this up to work with the kendo grid instead of tables? I've tried the view below but it shows the correct data in the <srcipt></script> tags but no grid is rendered.
Kendo VIEW:
@using Kendo.Mvc.UI
@model ProjectMVC.Models.IndexViewModel
@{
ViewData["Title"] = "Index";
}
<
h2
>Index</
h2
>
<
p
>
<
a
asp-action
=
"Create"
>Create New</
a
>
</
p
>
@{
int i = 0;
foreach (var title in Model.Titles)
{
i++;
var products = Model.Products.Where(x => x.Product == title);
tblProducts product = Model.Products.Where(x => x.Product == title).First();
@(Html.Kendo().Grid(products)
.Name($"grid{i}")
.Columns(columns =>
{
columns.Bound(c => c.Date).Width(140);
columns.Bound(c => c.Field1).Width(190);
columns.Bound(c => c.Field2);
columns.Bound(c => c.Product).Width(110);
})
.ToolBar(toolbar =>
{
toolbar.Excel();
toolbar.Pdf();
})
.Pageable()
.Sortable(sortable =>
{
sortable.SortMode(GridSortMode.SingleColumn);
})
.Filterable()
.Scrollable()
)
}
}
When I use EditorTemplate in a grid inside ClientDetailTemplateId I get "Invalid template" error due to
1. In EditorTemplate you cannot use # or you should double it ## this is clear
2. I need to user kendo control in EditorTemplate and I try to use ToClientTemplate() so kendo convert html for valid for EditorTemplate like
@Html.Kendo().DropDownListFor(m => m.Person).ToClientTemplate()
But I still get error because kendo clause above converts into
<input id="Person" name="Person" style="width:100%;" type="text" value="" />
<script>jQuery(function(){jQuery("#Person").kendoDropDownList({"autoBind":true,"dataTextField":"FullName","dataValueField":"PersonId","dataSource":{"transport":{"read":{"url":"/Administration/Students_Read","data":function() { return kendo.ui.DropDownList.requestData(jQuery("#Person")); }},"prefix":""},"serverFiltering":true,"filter":[],"schema":{"errors":"Errors"}}});});</script></div>' Generated code:'var $kendoOutput, $kendoHtmlEncode = kendo.htmlEncode;with(data){$kendoOutput='<input data-val="true" data-val-required="The RegisterGroupId field is required." id="RegisterGroupId" name="RegisterGroupId" type="hidden" value="" /><div class="k-edit-label"> <label for="Person">Person</label></div><div class="editor-field"> <input id="Person" name="Person" style="width:100%;" type="text" value="" /><script>jQuery(function(){jQuery("';Person").kendoDropDownList({"autoBind":true,"dataTextField":"FullName","dataValueField":"PersonId","dataSource":{"transport":{"read":{"url":"/Administration/Students_Read","data":function() { return kendo.ui.DropDownList.requestData(jQuery(";$kendoOutput+='Person")); }},"prefix":""},"serverFiltering":true,"filter":[],"schema":{"errors":"Errors"}}});});</script>
I believe problem in jQuery("#Person") having hash. But it is a kinda result of ToClientTemplate() where I expect proper template for ClientTemplat
I can workaround it using onEdit event of I grid and using kendo UI manually to make kendo control
(like <input id="Person" name="Person" style="width:100%;" type="text" value="" /> in EditorTemplate and JQuery in onEdit) but it is a inconvenience. Whole thing of kendo for mvc in ability to use mvc control in view
Hi,
I'm in a trial version to test your Grid component. When it's filter enabled and there are a lot of quick queries it crash (Open connection exception). It happens in async version too:
public IActionResult GetData([DataSourceRequest] DataSourceRequest request)
{
return Json(this._seasonRepository.Query().ToDataSourceResult(request));
}
Se produjo la excepción System.InvalidOperationException.
HResult=0x80131509
Mensaje = ExecuteReader requires an open and available Connection. The connection's current state is open.
Origen = System.Data.SqlClient
Seguimiento de la pila:
at System.Data.SqlClient.SqlConnection.GetOpenTdsConnection(String method)
at System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute(String method, SqlCommand command)
at System.Data.SqlClient.SqlCommand.ValidateCommand(Boolean async, String method)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)
at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.Execute(IRelationalConnection connection, String executeMethod, IReadOnlyDictionary`2 parameterValues, Boolean closeConnection)
at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.ExecuteReader(IRelationalConnection connection, IReadOnlyDictionary`2 parameterValues)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable.Enumerator.BufferlessMoveNext(Boolean buffer)
at Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](Func`2 operation, Func`2 verifySucceeded, TState state)
at Microsoft.EntityFrameworkCore.Query.QueryMethodProvider.<_ShapedQuery>d__3`1.MoveNext()
at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.<_TrackEntities>d__15`2.MoveNext()
at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor`1.EnumeratorExceptionInterceptor.MoveNext()
at Kendo.Mvc.Extensions.QueryableExtensions.Execute[TModel,TResult](IQueryable source, Func`2 selector)
at Kendo.Mvc.Extensions.QueryableExtensions.CreateDataSourceResult[TModel,TResult](IQueryable queryable, DataSourceRequest request, ModelStateDictionary modelState, Func`2 selector)
at Kendo.Mvc.Extensions.QueryableExtensions.ToDataSourceResult(IQueryable queryable, DataSourceRequest request)
at Oleoshop.Areas.Admin.Controllers.Commerce.Catalog.SeasonsController.GetData(DataSourceRequest request) in
This is my Grid razor configuration (very simple to test)
@(Html.Kendo().Grid<Oleo.Commerce.Catalog.Season>()
.Name("grid")
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(true)
.Read(read => read.Action("GetData", "Seasons"))
)
.Columns(columns =>
{
columns.Bound(c => c.Id).Width(140).Filterable(ftb => ftb.Cell(cell => cell.ShowOperators(false)));
columns.Bound(c => c.Name).Width(500).Filterable(ftb => ftb.Cell(cell => cell.Operator("contains")));
columns.Bound(c => c.Reference).Width(500).Filterable(ftb => ftb.Cell(cell => cell.Operator("contains")));
})
.Scrollable(x => x.Height(700))
.Groupable()
.Sortable()
.Pageable(pageable => pageable
.Refresh(true)
.PageSizes(true)
.ButtonCount(5))
.Resizable(resize => resize.Columns(true))
.Filterable(ftb => ftb.Mode(GridFilterMode.Row))
)
Please let me know
Regards
Hi everyone,
I have a grid with some fields and one of them is a date type and I have the next problem:
I have the grid set with any culture and all works fine(operators, pager messages, etc) but the filter menu that contains the operators to filter that column not take the current culture.
Example:
All columns and messages in the grid are in Spanish but the operators in the filter menu on the date column are in English.
Any help?
Regards!
Hello,
How can I hide and stop filter suggestion in column's grid?
Thanks!
We are getting the following error when using the new ASP.NET core packages with Telerik ... we have updated all of our references to the newest libraries... so I guess the question is.. "When is support for the new libraries going to be available?"
This happens on the services.AddKendo() call...
Exception thrown: 'System.IO.FileLoadException' in Carepilot.exe
Additional information: Could not load file or assembly 'Microsoft.AspNetCore.Mvc.Core, Version=1.0.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Thanks,
AJ
dear team,
I need to change the radhtmlchart type programatically in asp.net.Is it possible.If so how.
thanks,
Murali
Hi
How can i remove RadEditor's bottom extra space?
<
telerik:RadEditor
runat
=
"server"
ID
=
"RadEditor1"
OnClientLoad
=
"OnClientLoad"
>
</
telerik:RadEditor
>