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') 79ms
Install failed. Rolling back...
Uninstalling NuGet package Telerik.UI.for.AspNet.Core.2016.3.914.
Executing nuget actions took 132.55 ms
Package 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)
)
)