2014-02-14 58 views
0

我創建了一個使用Telerik asp.net/ajax控件的gridview,當我在本地運行應用程序時,網格工作正常,但當推到我的服務器我得到同樣的錯誤我所有的方法:ASP.default_aspx'沒有包含'IssuesGrid_OnItemUpdated'的定義,也沒有擴展方法'IssuesGrid_OnItemUpdated'

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?) 

我試圖刪除網格參考,並再次創造它,讓VS創建方法,然後它會工作,直到我做了所有的方法拋出錯誤,然後重新開始。

這裏是aspx頁面:

<telerik:RadGrid ID="Issues" runat="server" CellSpacing="0" DataSourceID="GridSource" GridLines="None" Skin="Metro" 
       AllowPaging="True" AllowSorting="True" AllowFilteringByColumn="True" OnItemDataBound="Issues_OnItemDataBound" 
       PageSize="30" EnableLinqExpressions="false" EnableHeaderContextMenu="true" EnableHeaderContextFilterMenu="true" 
       AllowAutomaticDeletes="True" AllowAutomaticInserts="True" AllowAutomaticUpdates="True" 
       OnItemUpdated="Issues_OnItemUpdated" OnItemInserted="Issues_OnItemInserted" OnItemDeleted="Issues_OnItemDeleted" 
       OnItemCommand="Issues_OnItemCommand" 
       AutoGenerateColumns="False" ShowStatusBar="True" HorizontalAlign="Center" Height="900px"> 

這裏是我在我的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; 
      } 
     } 

有什麼奇怪的是我有一個ondatabound方法,這只是罰款和之前的任何工作這些問題開始並繼續發揮作用。我嘗試將'對象發件人'更改爲'對象源',但仍然不行。

這裏是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; 
         } 
        } 
       } 
} 

什麼我做錯了任何幫助將是巨大的!

+0

您是否嘗試刪除asp.net臨時文件文件夾?它可能被緩存在那裏。 –

+0

當你部署時,你可以驗證dll被複制過嗎? – MikeSmithDev

+0

我會嘗試這個dll,這是我還沒有嘗試過的一件事。 – CSharpDev4Evr

回答

0

部署時,您的代碼隱藏(.cs文件)將被編譯爲dll。確保發佈時,這些dll文件也正在被複制。這也意味着您發佈的項目不應該有任何.cs.designer.cs文件。

相關問題