2012-03-02 19 views
1

我目前面臨的一個問題,而試圖填充我的網格, 其數據源基本上是一個Object Data Source這樣必須實現IConvertible:錯誤:對象,而試圖填充radgrid控件

<telerik:RadGrid ID="RadGrid1" runat="server" DataSourceID="ObjectDataSource1"> 
    <MasterTableView AutoGenerateColumns="False" DataSourceID="ObjectDataSource1"> 
    <RowIndicatorColumn> 
     <HeaderStyle Width="20px"></HeaderStyle> 
    </RowIndicatorColumn> 

    <ExpandCollapseColumn> 
     <HeaderStyle Width="20px"></HeaderStyle> 
    </ExpandCollapseColumn> 
    <Columns> 
     <telerik:GridBoundColumn DataField="TitleChoiceIncident" 
      HeaderText="TitleChoiceIncident" ReadOnly="True" 
      SortExpression="TitleChoiceIncident" UniqueName="TitleChoiceIncident"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="ValueChoiceIncident" 
      HeaderText="ValueChoiceIncident" ReadOnly="True" 
      SortExpression="ValueChoiceIncident" UniqueName="ValueChoiceIncident"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="idAgir" DataType="System.Int32" 
      HeaderText="idAgir" SortExpression="idAgir" UniqueName="idAgir"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="idUtilisateur" DataType="System.Int32" 
      HeaderText="idUtilisateur" SortExpression="idUtilisateur" 
      UniqueName="idUtilisateur"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="idEmetteur" DataType="System.Int32" 
      HeaderText="idEmetteur" SortExpression="idEmetteur" UniqueName="idEmetteur"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="idTypeAction" DataType="System.Int32" 
      HeaderText="idTypeAction" SortExpression="idTypeAction" 
      UniqueName="idTypeAction"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="idEntreprise" DataType="System.Int32" 
      HeaderText="idEntreprise" SortExpression="idEntreprise" 
      UniqueName="idEntreprise"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="idFamille" DataType="System.Int32" 
      HeaderText="idFamille" SortExpression="idFamille" UniqueName="idFamille"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="idProjet" DataType="System.Int32" 
      HeaderText="idProjet" SortExpression="idProjet" UniqueName="idProjet"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="idGroupeContact" DataType="System.Int32" 
      HeaderText="idGroupeContact" SortExpression="idGroupeContact" 
      UniqueName="idGroupeContact"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="idOrdinateur" DataType="System.Int32" 
      HeaderText="idOrdinateur" SortExpression="idOrdinateur" 
      UniqueName="idOrdinateur"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="idParent" DataType="System.Int32" 
      HeaderText="idParent" SortExpression="idParent" UniqueName="idParent"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="idEtatIncident" DataType="System.Int32" 
      HeaderText="idEtatIncident" SortExpression="idEtatIncident" 
      UniqueName="idEtatIncident"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="idSousCategorie" DataType="System.Int32" 
      HeaderText="idSousCategorie" SortExpression="idSousCategorie" 
      UniqueName="idSousCategorie"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="date" HeaderText="date" 
      SortExpression="date" UniqueName="date"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="heure" HeaderText="heure" 
      SortExpression="heure" UniqueName="heure"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="durée" HeaderText="durée" 
      SortExpression="durée" UniqueName="durée"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="priorite" DataType="System.Int32" 
      HeaderText="priorite" SortExpression="priorite" UniqueName="priorite"> 
     </telerik:GridBoundColumn> 
     <telerik:GridCheckBoxColumn DataField="blocage" DataType="System.Boolean" 
      HeaderText="blocage" SortExpression="blocage" UniqueName="blocage"> 
     </telerik:GridCheckBoxColumn> 
     <telerik:GridCheckBoxColumn DataField="fait" DataType="System.Boolean" 
      HeaderText="fait" SortExpression="fait" UniqueName="fait"> 
     </telerik:GridCheckBoxColumn> 
     <telerik:GridCheckBoxColumn DataField="facturable" DataType="System.Boolean" 
      HeaderText="facturable" SortExpression="facturable" UniqueName="facturable"> 
     </telerik:GridCheckBoxColumn> 
     <telerik:GridCheckBoxColumn DataField="alerterAgir" DataType="System.Boolean" 
      HeaderText="alerterAgir" SortExpression="alerterAgir" UniqueName="alerterAgir"> 
     </telerik:GridCheckBoxColumn> 
     <telerik:GridBoundColumn DataField="dateRappel" DataType="System.DateTime" 
      HeaderText="dateRappel" SortExpression="dateRappel" UniqueName="dateRappel"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="descriptionAgir" 
      HeaderText="descriptionAgir" SortExpression="descriptionAgir" 
      UniqueName="descriptionAgir"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="cheminFichier" HeaderText="cheminFichier" 
      SortExpression="cheminFichier" UniqueName="cheminFichier"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="objet" HeaderText="objet" 
      SortExpression="objet" UniqueName="objet"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="lieu" HeaderText="lieu" 
      SortExpression="lieu" UniqueName="lieu"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="dateSaisit" DataType="System.DateTime" 
      HeaderText="dateSaisit" SortExpression="dateSaisit" UniqueName="dateSaisit"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="dateAgir" DataType="System.DateTime" 
      HeaderText="dateAgir" SortExpression="dateAgir" UniqueName="dateAgir"> 
     </telerik:GridBoundColumn> 
     <telerik:GridCheckBoxColumn DataField="isAgenda" DataType="System.Boolean" 
      HeaderText="isAgenda" SortExpression="isAgenda" UniqueName="isAgenda"> 
     </telerik:GridCheckBoxColumn> 
     <telerik:GridCheckBoxColumn DataField="isAgendaPerso" DataType="System.Boolean" 
      HeaderText="isAgendaPerso" SortExpression="isAgendaPerso" 
      UniqueName="isAgendaPerso"> 
     </telerik:GridCheckBoxColumn> 
     <telerik:GridCheckBoxColumn DataField="isIncidentGen" DataType="System.Boolean" 
      HeaderText="isIncidentGen" SortExpression="isIncidentGen" 
      UniqueName="isIncidentGen"> 
     </telerik:GridCheckBoxColumn> 
     <telerik:GridBoundColumn DataField="dateDebut" DataType="System.DateTime" 
      HeaderText="dateDebut" SortExpression="dateDebut" UniqueName="dateDebut"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="dateEtatIncident" 
      DataType="System.DateTime" HeaderText="dateEtatIncident" 
      SortExpression="dateEtatIncident" UniqueName="dateEtatIncident"> 
     </telerik:GridBoundColumn> 
     <telerik:GridCheckBoxColumn DataField="isPause" DataType="System.Boolean" 
      HeaderText="isPause" SortExpression="isPause" UniqueName="isPause"> 
     </telerik:GridCheckBoxColumn> 
     <telerik:GridBoundColumn DataField="idTypeDemande" DataType="System.Int32" 
      HeaderText="idTypeDemande" SortExpression="idTypeDemande" 
      UniqueName="idTypeDemande"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="TempsEstime" HeaderText="TempsEstime" 
      SortExpression="TempsEstime" UniqueName="TempsEstime"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="Acceptation" HeaderText="Acceptation" 
      SortExpression="Acceptation" UniqueName="Acceptation"> 
     </telerik:GridBoundColumn> 
     <telerik:GridCheckBoxColumn DataField="Accord" DataType="System.Boolean" 
      HeaderText="Accord" SortExpression="Accord" UniqueName="Accord"> 
     </telerik:GridCheckBoxColumn> 
     <telerik:GridBoundColumn DataField="DerniereDateModif" 
      DataType="System.DateTime" HeaderText="DerniereDateModif" 
      SortExpression="DerniereDateModif" UniqueName="DerniereDateModif"> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn DataField="idExchange" HeaderText="idExchange" 
      SortExpression="idExchange" UniqueName="idExchange"> 
     </telerik:GridBoundColumn> 
     <telerik:GridTemplateColumn AllowFiltering="false" UniqueName="ImageColumnValider"> 
      <ItemTemplate> 
       <asp:ImageButton ID="ImageButtonValidation" runat="server" ImageUrl="~/img/validation.gif" 
         CommandName="Submit" CommandArgument='<%#Eval("idAgir")%>' ToolTip="Valider le ticket" 
         OnClick="Submit_Click" OnClientClick="return confirm('Êtes vous sûr de vouloir valider ce ticket?');" /> 
      </ItemTemplate> 
     </telerik:GridTemplateColumn> 
     <telerik:GridTemplateColumn AllowFiltering="false" UniqueName="ImageColumnDecliner"> 
      <ItemTemplate> 
       <asp:ImageButton ID="ImageButtonDecliner" runat="server" ImageUrl="~/img/croix.png" 
         CommandName="Decline" CommandArgument='<%#Eval("idAgir")%>' ToolTip="Décliner la proposition" 
         OnClick="Decline_Click" OnClientClick="return confirm('Êtes vous sûr de vouloir décliner la proposition?');" /> 
      </ItemTemplate> 
     </telerik:GridTemplateColumn> 
    </Columns> 
    </MasterTableView> 

    <HeaderContextMenu EnableAutoScroll="True"></HeaderContextMenu> 
</telerik:RadGrid> 

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
     OldValuesParameterFormatString="original_{0}" 
     SelectMethod="GetNewAgirsByClient" TypeName="DBAccess.DAOAgir"> 
    <SelectParameters> 
     <asp:SessionParameter Name="idContact" SessionField="contact" Type="Int32" /> 
    </SelectParameters> 
</asp:ObjectDataSource> 

我得到這個錯誤,我不明白爲什麼? 有誰知道這可能來自哪裏?

編輯:這是我選擇我的數據的地方:

public static List<Agir> GetNewAgirsByClient(int idContact) 
{ 
    DataClassesActilogDataContext db = ContextSingleton.GetDataContext(); 

    List<Agir> ListeAgir; 

    var v = from i in db.Agir 
      where (i.Agir_Contact.Any(a => a.idContact == idContact) 
      || i.Projet.Projet_Contact.Any(a => a.idContact == idContact)) 
      && (i.idEtatIncident == 1 || i.idEtatIncident == 11) && i.Accord == null 
      select i; 

    ListeAgir = v.ToList(); 

    return ListeAgir; 
} 

這裏是跟蹤:

[InvalidCastException: L'objet doit implémenter IConvertible.] 
    System.Convert.ChangeType(Object value, TypeCode typeCode, IFormatProvider provider) +4049209 
    System.Web.UI.WebControls.Parameter.GetValue(Object value, String defaultValue, TypeCode type, Boolean convertEmptyStringToNull, Boolean ignoreNullableTypeChanges) +126 
    System.Web.UI.WebControls.Parameter.GetValue(Object value, Boolean ignoreNullableTypeChanges) +63 
    System.Web.UI.WebControls.Parameter.get_ParameterValue() +40 
    System.Web.UI.WebControls.ParameterCollection.GetValues(HttpContext context, Control control) +261 
    System.Web.UI.WebControls.ObjectDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +270 
    System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +21 
    System.Web.UI.WebControls.DataBoundControl.PerformSelect() +143 
    Telerik.Web.UI.GridTableView.PerformSelect() +28 
    System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +74 
    Telerik.Web.UI.GridTableView.DataBind() +364 
    Telerik.Web.UI.RadGrid.DataBind() +173 
    System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +66 
    System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +75 
    System.Web.UI.Control.EnsureChildControls() +102 
    System.Web.UI.Control.PreRenderRecursiveInternal() +42 
    System.Web.UI.Control.PreRenderRecursiveInternal() +175 
    System.Web.UI.Control.PreRenderRecursiveInternal() +175 
    System.Web.UI.Control.PreRenderRecursiveInternal() +175 
    System.Web.UI.Control.PreRenderRecursiveInternal() +175 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2496 
+1

你已經在各自的數據類型所有的人,似乎是一個不匹配呢? – V4Vendetta 2012-03-02 11:43:56

+0

當我設置ObjectDataSource時,radgrid中的所有代碼都是自動生成的。所以,我認爲這是正確的! – Slrg 2012-03-02 11:47:36

+0

請使用堆棧跟蹤更新帖子,並且您是否正在做特別的選擇? – V4Vendetta 2012-03-02 11:53:58

回答

0

你必須嘗試轉換使用系統中的任何自定義對象。轉換類,或RadGrid正在嘗試這樣做。如果您將任何自定義對象傳遞給網格,請使用IConvertible實現該類型。

+0

奇怪,我沒有嘗試轉換任何東西到目前爲止。其實現在,我的代碼是空的。 – Slrg 2012-03-02 12:51:42

+0

檢查綁定..你指定所有的字段正確的DataTypes? – gaurawerma 2012-03-02 12:59:18

0

  • Source

    你的問題可以從特定數據字段設置一個錯誤DataType引起的。 .NET Framework正在嘗試轉換類型並搜索IConvertable接口並引發異常。爲了解決您的問題,您應該隔離哪一列是有問題的,並更正DataType。請注意,根據提供的代碼,很難確定哪個列導致問題,因爲它不知道來自ObjectDataSource的類型。