ASP.default_aspx ‘ne contient pas de définition pour’ IssuesGrid_OnItemUpdated ‘et aucune méthode d’extension’ IssuesGrid_OnItemUpdated ‘

J’ai créé un gridview à l’aide des contrôles Telerik asp.net/ajax et lorsque je lance l’application localement, la grid fonctionne bien, mais lorsque je suis poussée sur mon serveur, la même erreur se produit pour toutes mes méthodes:

ASP.default_aspx' does not contain a definition for 'IssuesGrid_OnItemUpdated' and no extension method 'IssuesGrid_OnItemUpdated' accepting a first argument of type 'ASP.default_aspx' could be found (are you missing a using directive or an assembly reference?) 

J’ai essayé de supprimer la référence dans la grid, de la créer à nouveau et de laisser VS créer la méthode. Cela fonctionnera jusqu’à ce que je le fasse pour toutes les méthodes renvoyant l’erreur, puis tout recommencera.

Voici la page aspx:

   

Et voici mes méthodes dans mon fichier cs:

  protected void Issues_OnItemUpdated(object sender, GridUpdatedEventArgs e) { if (e.Exception != null) { e.KeepInEditMode = true; e.ExceptionHandled = true; DisplayMessage(true, "Defect " + e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["ID"] + " cannot be updated. Reason: " + e.Exception.Message); } else { DisplayMessage(false, "Defect " + e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["ID"] + " updated"); } } protected void Issues_OnItemInserted(object source, GridInsertedEventArgs e) { if (e.Exception != null) { e.ExceptionHandled = true; e.KeepInInsertMode = true; DisplayMessage(true, "Defect cannot be inserted. Reason: " + e.Exception.Message); } else { DisplayMessage(false, "Defect inserted!"); } } protected void Issues_OnItemDeleted(object source, GridDeletedEventArgs e) { if (e.Exception != null) { e.ExceptionHandled = true; DisplayMessage(true, "Defect " + e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["ID"] + " cannot be deleted. Reason: " + e.Exception.Message); } else { DisplayMessage(false, "Defect " + e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["ID"] + " deleted"); } } protected void Issues_OnItemCommand(object source, GridCommandEventArgs e) { if (e.CommandName == RadGrid.InitInsertCommandName) //"Add new" button clicked { var editColumn = (GridEditCommandColumn)Issues.MasterTableView.GetColumn("EditCommandColumn"); editColumn.Visible = false; } else if (e.CommandName == RadGrid.RebindGridCommandName && e.Item.OwnerTableView.IsItemInserted) { e.Canceled = true; } else { var editColumn = (GridEditCommandColumn)Issues.MasterTableView.GetColumn("EditCommandColumn"); if (!editColumn.Visible) editColumn.Visible = true; } } 

Ce qui est étrange, c’est que j’ai une méthode à l’onduleur qui fonctionne parfaitement avant que l’un de ces problèmes ne commence et continue à fonctionner. J’ai essayé de changer «l’expéditeur de l’object» en «source de l’object», mais toujours impossible.

Voici l’événement OnDataBound:

  protected void Issues_OnItemDataBound(object source, GridItemEventArgs e) { var gridDataItem = e.Item as GridDataItem; if (gridDataItem != null) { var item = gridDataItem; //Tooltips if (!item.IsInEditMode) { var cell = item["Description"]; if (cell.Text.Length > 40) { var originaltext = cell.Text; cell.Text = cell.Text.Remove(40) + "..."; cell.ToolTip = originaltext; } } } } 

Toute aide sur ce que je fais mal serait géniale!

Votre code-behind (le fichier .cs ) est compilé dans une dll lorsque vous déployez. Assurez-vous que lorsque vous publiez, ces fichiers dll sont également copiés. Cela signifie également que votre projet publié ne doit .designer.cs fichier .cs ou .designer.cs .