简体   繁体   English

如何使用Datarow和DataTable填充单选按钮列表?

[英]How to use Datarow with DataTable to populate radiobuttonlist?

I created one quiz sample code, in that I have one label and one RadioButtonList for question and answer, 我创建了一个测验示例代码,其中有一个label和一个RadioButtonList用于问答。

 public DataSet GetDataSet(string query)
  {
      DataSet QuestionSet = new DataSet();
      DataTable QTable = new DataTable();
      QTable.Columns.Add("ROW_NUMBER");
      QTable.Columns.Add("QuestionNo");
      QTable.Columns.Add("Tname");
      QTable.Columns.Add("Tnumber");
      QTable.Columns.Add("question");
      QTable.Columns.Add("ans1");
      QTable.Columns.Add("ans2");
      QTable.Columns.Add("ans3");
      QTable.Columns.Add("ans4");

     DataRow dr;

    for (int i = 0; i < 10; i++)
      {
         dr = QTable.NewRow();
         dr[0] =  i;
         dr[1] = "Qno" + i;
         dr[2] = "TST001";
         dr[3] = "TST001";
       //dr[4] = "Is n't so nice to have this test project in place ?";
         dr[4] = "Question";
         dr[5] = "Option1";
         dr[6] = "Option2";
         dr[7] = "Option3";
         dr[8] = "Option45";

            QTable.Rows.Add(dr);
      }

    QuestionSet.Tables.Add(QTable);
   return QuestionSet;

    }

On Next button Click 在下一个按钮上单击

 protected void Button1_Click(object sender, EventArgs e) 
  {
     LoadQuestion();
  } 
 protected void LoadQuestion()
  { 
    if (Questions.Tables[0].Rows.Count>0) 
        {
          DataRow DR = Questions.Tables[0].Rows[0]; Question.Text=DR[0].ToString()+" of  "+totalQs; sno = DR[1].ToString();
         Questionlbl.Text = DR[4].ToString();        
         rbtnAns.Items.Clear();rbtnAns.Items.Add(DR[5].ToString());  
         rbtnAns.Items.Add(DR[6].ToString());  
         rbtnAns.Items.Add(DR[7].ToString());
         rbtnAns.Items.Add(DR[8].ToString());
         Question‌​s.Tables[0].Rows.Remove(DR);    
    }
  }

What I want is, when user clicks on next button the next question with four option should display ,how should I get this using datarow . 我想要的是,当用户单击“下一步”按钮时,应该显示带有四个选项的下一个问题,我该如何使用datarow获得此信息。

Yes see at follow I have added some sample code. 是的,请参阅下面的内容,我添加了一些示例代码。 you can try it. 你可以试试。 Put this code in your aspx page and configure the datasource as required. 将此代码放在aspx页面中,并根据需要配置datasource

<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px" 
        AllowPaging="true"
        AutoGenerateRows="false" 
        DataSourceID="DetailsViewSource">
        <Fields>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:Label ID="lblQUestion" runat="server" Text='<%#Eval("question") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <ItemTemplate>
                    <input type="radio" name="anwser" value='<%#Eval("ans1") %>'>
                    <label>
                        <%#Eval("ans1") %></label><br />
                    <input type="radio" name="anwser" value='<%#Eval("ans2") %>' />
                    <label>
                        <%#Eval("ans2") %></label><br />
                    <input type="radio" name="anwser" value='<%#Eval("ans3") %>' />
                    <label>
                        <%#Eval("ans3") %></label><br />
                    <input type="radio" name="anwser" value='<%#Eval("ans4") %>' />
                    <label>
                        <%#Eval("ans4") %></label><br />
                </ItemTemplate>
            </asp:TemplateField>
        </Fields>
        <PagerSettings Mode="NextPreviousFirstLast" FirstPageText="First" LastPageText="Last"
            NextPageText="Next" PreviousPageText="Previous" />
        <PagerStyle BackColor="AliceBlue" ForeColor="HotPink" />
    </asp:DetailsView>
    <asp:SqlDataSource ID="DetailsViewSource" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ConnectionStringKeyHere%>"
        InsertCommand="Your Insert Query" 
        SelectCommand="Your Select Query">
     </asp:SqlDataSource>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM