C# d、

C# d、,c#,asp.net,forms,C#,Asp.net,Forms,哇。只是…哇。使用,必须包含name='value',而不是id='value'。寓意:了解你的HTML。并努力寻找避免将原始HTML喷到页面上的方法。哇。只是…哇。使用,必须包含name='value',而不是id='value'。寓意:了解你的HTML。并努力找到避免将原始HTML喷到页面上的方法。请在后面显示代码。您是否正在使用IsPostback?顺便说一句:你在页面上的任何地方都有form标签吗?目前它在一个按钮点击事件上运行。这是回邮;我可以在表单集合中看到其他控件(我正在添加中继器

哇。只是…哇。使用
,必须包含
name='value'
,而不是
id='value'
。寓意:了解你的HTML。并努力寻找避免将原始HTML喷到页面上的方法。

哇。只是…哇。使用
,必须包含
name='value'
,而不是
id='value'
。寓意:了解你的HTML。并努力找到避免将原始HTML喷到页面上的方法。

请在后面显示代码。您是否正在使用
IsPostback
?顺便说一句:你在页面上的任何地方都有
form
标签吗?目前它在一个按钮点击事件上运行。这是回邮;我可以在表单集合中看到其他控件(我正在添加中继器)。这是个问题吗?编辑:是的,有一个
表单
标签。我不确定我是否理解您的上下文。但如果您在单击按钮时生成这些表单元素。这可能是问题的根源。对不起,我不清楚。当页面加载到
if(!page.IsPostBack)
块时,我正在创建元素。单击按钮时,我将获得用户输入。这适用于我的中继器,但不适用于本节。请尝试将生成代码移到回发条件之外。或者至少是其中的一部分,这样你就能看到区别。请在后面显示你的代码。您是否正在使用
IsPostback
?顺便说一句:你在页面上的任何地方都有
form
标签吗?目前它在一个按钮点击事件上运行。这是回邮;我可以在表单集合中看到其他控件(我正在添加中继器)。这是个问题吗?编辑:是的,有一个
表单
标签。我不确定我是否理解您的上下文。但如果您在单击按钮时生成这些表单元素。这可能是问题的根源。对不起,我不清楚。当页面加载到
if(!page.IsPostBack)
块时,我正在创建元素。单击按钮时,我将获得用户输入。这适用于我的中继器,但不适用于本节。请尝试将生成代码移到回发条件之外。或者至少是一部分,所以你可以看到区别。我试着把它拿出来,但没有解决它。而且他们在发帖后并没有失踪;如果我停留在页面上(我目前正在进行测试),那么就有2个元素的副本。我尝试将其取出,但没有解决问题。而且他们在发帖后并没有失踪;如果我停留在页面上(我目前正在进行测试),则有2个元素副本。整个页面位于
表单
标记内。整个页面位于
表单
标记内。
Question

<input type='hidden' id='h100' />
   <select id='q100'>
      <option>Answer 1</option>
      <option>Answer 2</option>
      <option>Answer 3</option>
  </select>
if (!Page.IsPostBack)
    {
       // Much stuff that works fine, connecting to database, etc.

            // Get matching questions - variables
            ArrayList matchingSections = new ArrayList();
            int matchingSectionCount;

            // Get count of matching sections 
            OracleCommand cmdMatchSectCount = new OracleCommand("Select Count(distinct matching_section) From graphite.question Join graphite.q_matching Using(q_id) Where t_id = " + Session["TestTaking"].ToString(), conn);
            OracleDataReader drMatchSectCount = cmdMatchSectCount.ExecuteReader();
            drMatchSectCount.Read();
            matchingSectionCount = (int)drMatchSectCount.GetOracleNumber(0).Value;
            Session["MatchingSectionCount"] = matchingSectionCount;

            // Get matching sections
            OracleCommand cmdMatchSects = new OracleCommand("Select Distinct matching_section From graphite.question Join graphite.q_matching Using(q_id) Where t_id = " + Session["TestTaking"].ToString() + " Order By matching_Section", conn);
            OracleDataReader drMatchSects = cmdMatchSects.ExecuteReader();

            for(int i = 0; i < matchingSectionCount; i++)
            {
                drMatchSects.Read();
                matchingSections.Add(drMatchSects.GetOracleString(0).Value);
            }

            foreach (String s in matchingSections)
            {
                string row = string.Empty;
                int questionCount;
                ArrayList answers = new ArrayList();

                matchManual.InnerHtml += "\n<h2>Matching Section - " + s + "</h2>";
                matchManual.InnerHtml += "\n<table>";

                OracleCommand cmdQuestionCount = new OracleCommand("Select Count(correct_answer) From graphite.question Join graphite.q_matching Using(q_id) Where t_id = " + Session["TestTaking"].ToString() + " and matching_section = '" + s + "'", conn);
                OracleDataReader drQuestionCount = cmdQuestionCount.ExecuteReader();
                drQuestionCount.Read();
                questionCount = int.Parse(drQuestionCount.GetOracleNumber(0).Value.ToString());

                OracleCommand cmdMatchAnswers = new OracleCommand("Select correct_answer From graphite.question Join graphite.q_matching Using(q_id) Where t_id = " + Session["TestTaking"].ToString() + " and matching_section = '" + s + "' Order By correct_answer", conn);
                OracleDataReader drMatchAnswers = cmdMatchAnswers.ExecuteReader();
                for (int i = 0; i < questionCount; i++)
                {
                    drMatchAnswers.Read();
                    answers.Add(drMatchAnswers.GetOracleString(0).Value.ToString());
                }

                OracleCommand cmdMatchLoop = new OracleCommand("Select q_phrase, q_id From graphite.question Join graphite.q_matching Using(q_id) Where t_id = " + Session["TestTaking"].ToString() + " and matching_section = '" + s + "'", conn);
                OracleDataReader drMatchLoop = cmdMatchLoop.ExecuteReader();
                for (int i = 0; i < questionCount; i++)
                {
                    drMatchLoop.Read();
                    row += "\n  <tr>";
                    row += "\n    <td>" + drMatchLoop.GetOracleString(0).Value ;

                    row += "<input type='hidden' id='h" + drMatchLoop.GetOracleNumber(1).Value.ToString() + "' />";
                    row += "\n    </td>";
                    row += "\n    <td>";
                    row += "\n      <select id='q" + drMatchLoop.GetOracleNumber(1).Value.ToString() + "' runat='server'>";

                    foreach(string answer in answers)
                    {
                        row += "\n        <option>" + answer + "</option>";
                    }

                    row += "\n      </select>";
                    row += "\n    </td>";

                    row += "\n  </tr>";
                }

                matchManual.InnerHtml += row;
                matchManual.InnerHtml += "\n</table>\n\n";
   }