0

私は試験ページであるページを持っています、それは彼らの答えですべてのMCQ質問を選択します...そしてサーバー側のページロードで私はdiv.innerHtml +="htmlタグ"+質問+答えを含むラジオボタンを追加しますそしてそれは選択し続けますデータベースからすべての質問がクライアント側でレンダリングされるまで、これらすべての質問とタグをフォームに追加し、最後にすべてのラジオボタンの値を送信する入力送信ボタンがありますが、フォームアクションを設定しても取得できませんラジオボタンの値...

ここにいくつかのコードがあります:

using (SqlDataReader sr1 = command1.ExecuteReader())
{
    cc.InnerHtml = "<form id=\"form2\" name=\"form2\" method=\"post\" action=\"\">";
    while (sr1.Read())
    {
        i++;
        iString = i.ToString();
        questionText = sr1["text"].ToString();
        question_first_wrong_answer = sr1["first_wrong_answer"].ToString();
        question_second_wrong_answer = sr1["second_wrong_answer"].ToString();
        question_right_answer = sr1["right_answer"].ToString();
        questionValue = (int)sr1["value"];
        c = answerPos.Next(0, 10);

        cc.InnerHtml += "<span>" + iString + "- " + questionText +"</span>"
                     + "<br />"
                     + "<table style=\"width:77%; margin-left: 47px;\">"
                     + "<tr>"
                     + "    <td style=\"width: 210px\">"
                     + " <input type=\"radio\" name=\"question" + iString + "a\" value=\"" + question_first_wrong_answer + "\" />" + question_first_wrong_answer + "</td>"
                     + "<td style=\"width: 210px\">"
                     + "<input type=\"radio\"  name=\"question" + iString + "a\" value=\"" + question_second_wrong_answer + "\" />" + question_second_wrong_answer + "</td>"
                     + "<td style=\"width: 210px\">"
                     + "<input type=\"radio\"  name=\"question" + iString + "a\" value=\"" + question_right_answer + "\" />" + question_right_answer + "</td>"
                     + "</tr>"
                     + "</table>"
                     + "<br />";

    }
    sr1.Close();
    cc.InnerHtml += "<input id=\"Submit1\" type=\"submit\" value=\"Submit\" />"
                 + "</form>";
}
4

2 に答える 2

1

InnerHtml は使用しないでください。それは間違っています。InbuildHtmlPageクラスを使用する

例としてこのように使用します

Page.Controls.Add( 
  new LiteralControl(@"<html>\r\n<body>\r\n
    <h1>Welcome to my Homepage!</h1>\r\n"));
HtmlForm Form1 = new HtmlForm();
Form1.ID = "Form1";
Form1.Method = "post";
Form1.Controls.Add(
  new LiteralControl("\r\nWhat is your name?\r\n"));
TextBox TextBox1 = new TextBox();
TextBox1.ID = "txtName";
Form1.Controls.Add(TextBox1);
Form1.Controls.Add(
  new LiteralControl("\r\n<br />What is your gender?\r\n"));
DropDownList DropDownList1 = new DropDownList();
DropDownList1.ID = "ddlGender";
ListItem ListItem1 = new ListItem();
ListItem1.Selected = true;
ListItem1.Value = "M";
ListItem1.Text = "Male";
DropDownList1.Items.Add(ListItem1);
ListItem ListItem2 = new ListItem();
ListItem2.Value = "F";
ListItem2.Text = "Female";
DropDownList1.Items.Add(ListItem2);
ListItem ListItem3 = new ListItem();
ListItem3.Value = "U";
ListItem3.Text = "Undecided";
DropDownList1.Items.Add(ListItem3);
Form1.Controls.Add(
  new LiteralControl("\r\n<br /> \r\n"));
Button Button1 = new Button();
Button1.Text = "Submit!";
Form1.Controls.Add(Button1);
Form1.Controls.Add(
  new LiteralControl("\r\n</body>\r\n</html>"));
Controls.Add(Form1);
于 2012-04-28T05:50:43.030 に答える
0

サーバー フォーム要素 ( ) を削除します<form runat="server"。それが存在する場合、この新しいフォームは破棄されます。

また、異なる入力コントロールに同じ名前を使用しています。

name=\"question" + iString + "a\" value=\""

そのため、ラジオにも一意の名前を付ける必要があります。

于 2012-04-28T06:07:44.613 に答える