0
            foreach (var item in AnketSoru)
        {
            r = new HtmlTableRow();
            c = new HtmlTableCell();
            c.InnerHtml = item.new_question_text.ToString();
            r.Cells.Add(c);

            switch (item.new_question_type.ToString())
            {
                case "2": //FreeText
                    c = new HtmlTableCell();
                    TxtFreeText = new TextBox();
                    TxtFreeText.ID = "Txt_" + item.new_survey_questionid.ToString();
                    TxtFreeText.TextMode = TextBoxMode.MultiLine;
                    TxtFreeText.Width = 300;
                    TxtFreeText.Height = 50;
                    TxtFreeText.EnableViewState = true;
                    c.Controls.Add(TxtFreeText);

                    HiddenField txthfield = new HiddenField();
                    txthfield.Value = item.new_name.ToString();
                    c.Controls.Add(txthfield);

                foreach (Control c in plc.Controls)
            {
                System.Web.UI.HtmlControls.HtmlTable Survey_Inner = (System.Web.UI.HtmlControls.HtmlTable)c.FindControl("Survey_Inner");

                foreach (System.Web.UI.HtmlControls.HtmlTableRow r in Survey_Inner.Rows)
                {
                    foreach (Control ctr in r.Cells)
                    {
                        foreach (Control ct in ctr.Controls)
                        {
                            if (ct.GetType().ToString() == "System.Web.UI.WebControls.TextBox")
                            {

                                string freeTxtQues = ?? ;

                                string TextCevap = ((System.Web.UI.WebControls.TextBox)ct).Text;

                                string deger = ct.ID.ToString();



                                Guid QuestionId = new Guid(deger.Substring(4));

                                SaveAnswers(this._PortalUserHelper.UserProxy.ContactId, EgitimKatilimcisi, QuestionId, TextCevap, freeTxtQues);

                            }

やってみた

string freeTxtQues = ((System.Web.UI.WebControls.HiddenField)ct).Value;

しかし、私にエラーを返します。「InvalidCastExceptionはユーザーコードによって処理されませんでした。」

'System.Web.UI.WebControls.TextBox'türündekinesne'System.Web.UI.WebControls.HiddenField'türüneatılamadı。

hiddenfields値に到達し、それらをfreeTxtQues値に設定しようとしていますが、今のところそれを行うことができませんでした。どうすればそれを行うことができますか?

4

1 に答える 1

0

あなたの質問/問題を理解するのは難しいですが、私は何かを投げます...

動的コントロールを作成するときは、Initイベントで作成する必要があるため、ViewStateが適用されると、コントロールを見つけて値を設定します。Initでコントロールを作成していないが、後で作成する場合は、コントロールに想定される値がないことがわかります。

于 2011-06-21T10:54:59.947 に答える