Hello,
I am trying to list for asp.net core and I get the following null reference exception.
NullReferenceException: Object reference not set to an instance of an object.
Please find the stack trace attached. I tried attaching sample project but it wouldn't allow me.
I have spent a lot of time trying to figure out but failed. I am not sure if I am missing anything.
Any ideas or suggestions on how I can resolve this issue is really appreciated.
Thanks,
Hi,
I'm trying to update a label inside a grid toolbar with the Count on selectedItem of the grid.
I'm able to retrieve the number of selected item with the "onChange" event ( in an JS alert in my test)
using:
<script type="text/javascript"> function onChange(arg) { var selected = $.map(this.select(), function (item) { return $(item).text(); }); alert(selected.length); }</script>but i'm having trouble accessing the label inside the toolbar of the grid (to modify the text property).
I'm not quite sure of the syntax to retrieve the label..
I tried several way to access it and I'm having not luck so far.
Is there a way to access a control inside the toolbar of a grid from JavaScript?
Note: I'm using "Telerik.UI.for.AspNet.Core": "2016.3.914"
Setting the Media in the player declaration for playing mp3 is quite easy :
@(Html.Kendo().MediaPlayer()
.Name("mediaPlayer")
.AutoPlay(true)
.Media(m => m
.Title("this is my song")
.Source("sounds/mysong.mp3") )
.HtmlAttributes(new { style = "height:360px; width:640px" } )
)
But how to change the media source for example if I want to change "mysong.mp3" to "myothersong.mp3" in an event in javascript :
function onChange(arg)
{
$("#mediaPlayer").data("kendoMediaPlayer").media(?????);
}
Many thanks

hi guys,
this was first a checkbox but I had to change it to a Grid.
but the only problem is that the paging is not working... can you guys find the mistake?
(I am a beginner)
<telerik:RadGrid ID="ChangedList" runat="server" AutoGenerateColumns="false" OnPageIndexChanged="ChangedList_PageIndexChanged" OnNeedDataSource="ChangedList_NeedDataSource" GridLines="None" AllowPaging="true" RenderMode="Lightweight" PageSize="5" AllowSorting="True">
<MasterTableView ClientDataKeyNames="Logging_ID" backcolor="PaleGreen" ForeColor="black" BorderStyle="Solid" BorderColor="Green" AlternatingItemStyle-BackColor="MediumSeaGreen" PagerStyle-BackColor ="LawnGreen" HeaderStyle-ForeColor="green" HeaderStyle-BorderColor="Crimson">
<Columns>
<telerik:GridCheckBoxColumn
HeaderText="Checkbox" >
</telerik:GridCheckBoxColumn>
<telerik:GridBoundColumn DataField="ModuleName" HeaderText="Naam" UniqueName="ModuleName" ReadOnly="true">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="AssemblyVersion" HeaderText="Versie" UniqueName="AssemblyVersion" ReadOnly="true">
</telerik:GridBoundColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
--------------------------------------------------------------------------------------------------------------
protected void Page_Load(object sender, EventArgs e)
{
// CheckBoxList1.AutoPostBack = cbAutoRefresh.Checked;
LogChanges();
if (!IsPostBack)
{
ddWebserver.DataSource = controller.Server_List();
ddWebserver.DataTextField = "Description";
ddWebserver.DataValueField = "Server_ID";
ddWebserver.DataBind();
ddWebserver.SelectedIndex = 0;
LoadListboxes();
}
protected void ChangedList_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
}
protected void ChangedList_PageIndexChanged(object sender, GridPageChangedEventArgs e)
{
int index = e.NewPageIndex;
int current = ChangedList.CurrentPageIndex;
}
private void LoadListboxes()
{
//CheckBoxList1.Items.Clear();
CheckBoxList2.Items.Clear();
var changes = controller.Logging_List().Where(x => x.Ignore == false).ToList().OrderBy(x => x.ModuleName);
ChangedList.DataSource = changes;
ChangedList.DataBind();
Whenever I try and download from Nuget Package Explorer I got the following error:
Retrieving package 'Telerik.UI.for.AspNet.Core 2016.3.914' from 'telerik.com'. GET https://nuget.telerik.com/nuget/Packages(Id='Telerik.UI.for.AspNet.Core',Version='2016.3.914') OK https://nuget.telerik.com/nuget/Packages(Id='Telerik.UI.for.AspNet.Core',Version='2016.3.914') 79msInstall failed. Rolling back...Uninstalling NuGet package Telerik.UI.for.AspNet.Core.2016.3.914.Executing nuget actions took 132.55 msPackage contains multiple nuspec files.========== Finished ==========Time Elapsed: 00:00:01.8826245
However, when I just edit the project.json manually to include the package and then rebuild to trigger a package restore, it works fine.
"Telerik.UI.for.AspNet.Core": "2016.3.914"

I am using the save/load grid state feature in JS for my Kendo UI MVC Grid. It looks like this:
Saving state:
var grid = $("#Items").data("kendoGrid");
sessionStorage.GridState = kendo.stringify(grid.getOptions());
Loading state:
$(document).ready(function () {
var grid = $("#Items").data("kendoGrid");
var originalOptions = grid.getOptions();
var stringifiedOptions = sessionStorage.GridState;
if (stringifiedOptions) {
console.log("Loaded Grid State.");
var loadedOptions = JSON.parse(stringifiedOptions);
loadedOptions.columns = originalOptions.columns;
grid.setOptions(loadedOptions);
sessionStorage.removeItem("GridState");
console.log("Clearing Grid State Storage.");
}
});
The first time the grid loads, grid state gets saved after clicking the edit button, which takes me to another page, but then if I click back from this edit page to go back to the grid page, it shows this error:
{"There is already an open DataReader associated with this Command which must be closed first."}
dataSourceResult.Total = source1.Count();
And I can see the load grid ajax action is being called twice, and it errors out on the second time. The error occurs when I call MyBaseEntitiesQueryable.ToDataSourceResult(request). I can't debug the Kendo UI code, but when I was able to copy the classes in the grid filtering to mimic it and it occurs on this line in ToDataSourceResult:
dataSourceResult.Total = source1.Count();
The full error and stack trace:
{"There is already an open DataReader associated with this Command which must be closed first."}
at System.Data.SqlClient.SqlInternalConnectionTds.ValidateConnectionForExecute(SqlCommand command)
at System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func`3 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed)
at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(DbCommand command, DbCommandInterceptionContext interceptionContext)
at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
{"An error occurred while executing the command definition. See the inner exception for details."}
at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
at System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues)
at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.<GetResults>b__5()
at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)
at System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
at System.Data.Entity.Core.Objects.ObjectQuery`1.<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__0()
at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext()
at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
at Kendo.Mvc.Extensions.QueryableExtensions.Count(IQueryable source)
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, ModelStateDictionary modelState)
at Kendo.Mvc.Extensions.QueryableExtensions.ToDataSourceResult(IQueryable enumerable, DataSourceRequest request)
at Sandbox.Controllers.EntityController`5.LoadGrid(DataSourceRequest request) in C:\Users\shol726\Documents\Visual Studio 2015\Projects\Drs\samples\Sandbox\Controllers\EntityController.cs:line 75
at lambda_method(Closure , Object , Object[] )
at Microsoft.AspNetCore.Mvc.Internal.ObjectMethodExecutor.Execute(Object target, Object[] parameters)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeActionFilterAsync>d__28.MoveNext()
To make matters worse, this error happens only about 75% of the time, not all the time. Sometimes I get "The underlying provider failed to Open." as well. But that is much rarer.
How can I fix this?
Standard grid filtering options done as shown in this demo page: http://demos.telerik.com/aspnet-mvc/grid/filter-menu-customization
But it doesn't work. Here is my grid:
@(Html.Kendo().Grid<UserModel>() .Name("Items") .DataSource(dataSource => dataSource .Ajax() .Destroy(delete => delete.Action("DeleteGridItem", @ViewContext.RouteData.Values["controller"].ToString())) .PageSize(25) .Update(update => update.Action("Save", @ViewContext.RouteData.Values["controller"].ToString())) //.ServerOperation(true) .Sort(sort => sort.Add("Name")) .Read(read => read.Action("LoadGrid", @ViewContext.RouteData.Values["controller"].ToString()))) .ToolBar(tools => { tools.Custom().Text("Clear Filter").HtmlAttributes(new { id = "gridAllFilterReset" }); tools.Excel().Text("Excel"); }) .Excel(excel => excel .AllPages(true).FileName($"{ViewContext.RouteData.Values["controller"].ToString()}.xlsx").Filterable(true) ) //.EnableCustomBinding(true) .Columns(columns => { columns.Bound(x => x.Name); columns.Bound(x => x.Email); columns.Bound(x => x.Departments); columns.Bound(x => x.Titles); columns.Command(command => { command.Custom("Edit").Text("<span class='k-icon k-edit'></span>").Click("editRecord"); command.Destroy().Text(" "); }).Width(250); }) .Filterable(f => f.Operators(o => o.ForString(x => x .Clear() .Contains("Contains") .IsEqualTo("Is Equal To") .StartsWith("Starts With") .EndsWith("Ends With") .DoesNotContain("Does Not Contain") .IsNotEqualTo("Is Not Equal To") .IsEmpty("Is Empty") .IsNotEmpty("Is Not Empty")))) .Sortable(x => x.AllowUnsort(false)) .Pageable() .Deferred())
But when I load the grid, the default filter options for string still apply
@(Html.Kendo().Grid(Model.Profile.CollectionOption)
.Name("colOptions")
.Columns(columns =>
{
columns.Bound(p => p.Id).Hidden();
columns.Bound(p => p.ModuleId).Hidden();
columns.Bound(p => p.Module.Name).Title("Modulo");
columns.Bound(p => p.Name).Title("Opcion");
columns.Bound(p => p.Selected).Title("Seleccionar").ClientTemplate("<input type='checkbox' #= Selected ? checked='checked' :'' # />"); ;
}
)
.Editable(editable => editable.Mode(GridEditMode.InCell))
.DataSource(dataSource => dataSource
.Ajax()
.Model( m =>
{
m.Field(p => p.Id).Editable(false);
m.Field(p => p.ModuleId).Editable(false);
m.Field(p => p.Module.Name).Editable(false);
m.Field(p => p.Name).Editable(false);
m.Field(p => p.Selected);
}
)
.ServerOperation(false)
)
)
