Case! Cast spécifié n'est pas valide

j'ai eu cette erreur: cast spécifié n'est pas valide lorsque j'essaie d'ajouter une nouvelle ligne à mon grille qui contiennent un itemtemplate case comme indiqué ci-dessous. Chaque fois que j'utilise le mot "Vérifié" au lieu de "Texte", le message d'erreur est affiché. Mais ce que je veux faire est de montrer la checkbox "checked" quand mon "choiceQn" est vrai et ne pas montrer le "vrai" à côté de ma case. Merci de m'aider si vous pouvez résoudre mon problème.

ASP.NET

 <ItemTemplate>
     <asp:CheckBox ID="ChoiceCheckBox" runat="server" **Checked**='<%# Bind("ChoiceQn") %>'/>
 </ItemTemplate>

C#

    private void AddNewRowToGrid()
    {
        int rowIndex = 0;
        if (ViewState["CurrentTable"] != null)
        {
            DataTable dtCurrentTable = (DataTable)ViewState["CurrentTable"];
            DataRow drCurrentRow = null;

            if (dtCurrentTable.Rows.Count > 0)
            {
                for (int i = 1; i <= dtCurrentTable.Rows.Count; i++)
                {
                    TextBox box1 = (TextBox)UpdateQuestionGrid.Rows[rowIndex].Cells[0].FindControl("QuestionsTbx");

                    drCurrentRow = dtCurrentTable.NewRow();
                    drCurrentRow["QuestionId"] = i + 1;
                    drCurrentRow["Question"] = "";
                    drCurrentRow["ChoiceQn"] = false;
                    rowIndex++;
                }

                //add new row to DataTable
                dtCurrentTable.Rows.Add(drCurrentRow);

                //Store the current data to ViewState
                ViewState["CurrentTable"] = dtCurrentTable;

                //Rebind the Grid with the current data
                UpdateQuestionGrid.DataSource = dtCurrentTable;
                UpdateQuestionGrid.DataBind();
            }
        }
        else
        {
            Response.Write("ViewState is null");
        }

        //Set Previous Data on Postbacks
        //SetPreviousData();
    }

Trace De La Pile:

[InvalidCastException: Specified cast is not valid.]
ASP.asc_questionupdate_aspx.__DataBinding__control15(Object sender, EventArgs e) in f:\ASC_FeedbackSystem(latest)\ASC_FeedbackSystem\asc\questionupdate.aspx:26
System.Web.UI.Control.OnDataBinding(EventArgs e) +99
System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +92
System.Web.UI.Control.DataBind() +15
System.Web.UI.Control.DataBindChildren() +211
System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +102
System.Web.UI.Control.DataBind() +15
System.Web.UI.Control.DataBindChildren() +211
System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +102
System.Web.UI.Control.DataBind() +15
System.Web.UI.WebControls.GridView.CreateRow(Int32 rowIndex, Int32 dataSourceIndex, DataControlRowType rowType, DataControlRowState rowState, Boolean dataBind, Object dataItem, DataControlField[] fields, TableRowCollection rows, PagedDataSource pagedDataSource) +155
System.Web.UI.WebControls.GridView.CreateChildControls(IEnumerable dataSource, Boolean dataBinding) +2417
System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data) +57
System.Web.UI.WebControls.GridView.PerformDataBinding(IEnumerable data) +14
System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +114
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +31
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +142
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +73
System.Web.UI.WebControls.GridView.DataBind() +4
ASC_FeedbackSystem.questionupdate.AddNewRowToGrid() in F:\ASC_FeedbackSystem(latest)\ASC_FeedbackSystem\asc\questionupdate.aspx.cs:108
ASC_FeedbackSystem.questionupdate.ButtonAdd_Click(Object sender, EventArgs e) in F:\ASC_FeedbackSystem(latest)\ASC_FeedbackSystem\asc\questionupdate.aspx.cs:161
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
  • Je ne sais pas, mais je me demande pourquoi vous en boucle sur la table existante, la création d'une nouvelle ligne (dans la mémoire) pour chaque ligne dans la table et ne rien faire avec ces lignes, sauf après la fin quand vous faites quelque chose avec le dernier. Qu'essayez-vous de réaliser là-bas?
  • geekswithblogs.net/dotNETvinz/archive/2009/06/04/...
  • je viens de remplacer les zones de texte avec case, mais j'avais le visage d'erreur lorsque j'ai essayé d'ajouter une nouvelle ligne avec "Checked=" <%# Bind("ChoiceQn")%>"
  • Ce type de données est ChoiceQn et êtes-vous à l'aide de SQL ou MySQL?
  • Hey sa nvarchar(1), mais dans la classe, je prends ça comme un booléen.
  • Salut user1037134 , j'ai le même problème mais encore, elle n'a pas fonctionné pour moi, puis-je savoir comment avez-vous garder à la valeur cochée sur le SetPreviousData(); ? J'ai été suggéré d'utiliser ceci: ck1.Checked = (Boolean)dt.Rows[i]["Disabled"];, mais il dit: cast Spécifié n'est pas valide. Merci

InformationsquelleAutor | 2012-01-10