2015-08-19 9 views
0
год

Я использую RadGrid в веб-страницы и связывание его с помощью ObjectDataSource, как показано ниже:ObjectDataSource «odsMonthlyStatusReport» не смог найти, не универсальный метод «GetMonthlyReportData», который имеет параметры: месяц,

<asp:ObjectDataSource ID="odsMonthlyStatusReport" runat="server" SelectMethod="GetMonthlyReport_Test" TypeName="atQuest.Projects.Sunway.IPRRequest"> 
         <SelectParameters> 
          <asp:ControlParameter ControlID="ddlMonth" Name="month" PropertyName="SelectedValue" 
           Type="String" ConvertEmptyStringToNull="true" /> 
          <asp:ControlParameter ControlID="ddlYear" Name="year" PropertyName="SelectedValue" 
           Type="String" ConvertEmptyStringToNull="true" /> 
         </SelectParameters> 
        </asp:ObjectDataSource> 

        <telerik:RadGrid ID="GridReport" runat="server" AllowPaging="True" AllowSorting="True" AllowFilteringByColumn="True" ShowGroupPanel="True" 
        CellSpacing="0" GridLines="None" Width="100%" Skin="Outlook" DataSourceID="odsMonthlyStatusReport" OnItemDataBound="GridReport_ItemDataBound"> 

          <ClientSettings AllowDragToGroup="True" /> 
          <GroupingSettings CaseSensitive="false"></GroupingSettings> 
          <MasterTableView AllowFilteringByColumn="true" AllowMultiColumnSorting="false" AutoGenerateColumns="false" 
            CommandItemDisplay="Top" DataKeyNames="RequestID" EnableGroupsExpandAll="true" 
            GroupLoadMode="Client" PageSize="50"> 

          <CommandItemSettings ShowAddNewRecordButton="false" ShowExportToExcelButton="true" /> 
          <SortExpressions> 
           <telerik:GridSortExpression FieldName="RequisitionNo" SortOrder="Descending" /> 
          </SortExpressions> 
          <PagerStyle AlwaysVisible="True" PageSizeControlType="RadComboBox" Position="Bottom" PageSizes="50,100,150,200" /> 

             <Columns> 
              //all GridBound columnc 
             </Columns> 
            </MasterTableView> 
            <ExportSettings SuppressColumnDataFormatStrings="True" IgnorePaging="True" ExportOnlyData="True" Excel-Format="ExcelML" OpenInNewWindow="True" FileName="eAPDocHistory" Excel-FileExtension="xls"> 
            </ExportSettings> 
           </telerik:RadGrid> 

Ниже файл класса (IPRRequest.cs) код:

[DataObjectMethod(DataObjectMethodType.Select, true)] 
     public static DataTable GetMonthlyReport_Test(string Month, string Year, string orderBy) 
     { 
      Data data = new Data(); 
      Dictionary<string, object> input = new Dictionary<string, object>() 
      { 
       {"@Month", Month}, 
       {"@Year", Year}, 
      }; 
      return data.ExecuteQuery(CommandType.StoredProcedure, "[Invoice].[usp_tbl_Request_Select_MonthlyStatusReport]", input); 
     } 

Затем я построить с помощью "Debug" и "Release" вариант, и развернуть .dll папки "Release" на сервер. Он всегда бросает ниже ошибки: enter image description here

Как я могу видеть, весь код верен в моем случае. Тогда почему я получаю эту ошибку? Пожалуйста, дайте мне знать, что не так в моем коде или что-то не хватает. Ответьте, пожалуйста.

ответ

0

Эта ошибка возникла из-за отсутствия третьего параметра string orderBy (определен в файле .cs), но не в ObjectDataSource. Добавлена ​​следующая строка:

<asp:ObjectDataSource ID="odsMonthlyStatusReport" runat="server" SelectMethod="GetReportData" TypeName="atQuest.Projects.Sunway.IPRRequest"> 
    <SelectParameters> 
      <asp:ControlParameter ControlID="ddlMonth" Name="month" PropertyName="SelectedValue" Type="String" ConvertEmptyStringToNull="true" /> 
      <asp:ControlParameter ControlID="ddlYear" Name="year" PropertyName="SelectedValue" Type="String" ConvertEmptyStringToNull="true" /> 
      <asp:Parameter DefaultValue="" Name="orderBy" Type="String" /> 
    </SelectParameters> 
</asp:ObjectDataSource> 

Ошибка решена.