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";
}