Как использовать Datarow с DataTable для заполнения списка радиокнопок?

Я создал один образец кода викторины, в котором у меня есть один 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;

    }

Кнопка «Далее» Нажмите

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

Я хочу, чтобы когда пользователь нажимал кнопку «Далее», должен отображаться следующий вопрос с четырьмя вариантами, как мне получить это, используя datarow.


person Nitin Turankar    schedule 10.12.2013    source источник
comment
Сурадж, сэр, у вас есть идеи по поводу заданного вопроса?   -  person Nitin Turankar    schedule 10.12.2013
comment
@NitinTurankar он паха: stackoverflow.com/questions/17671706/   -  person C Sharper    schedule 10.12.2013
comment
На следующей кнопке protected void Button1_Click(отправитель объекта, EventArgs e) {LoadQuestion();} protected void LoadQuestion() {if (Questions.Tables[0].Rows.Count›0){DataRow DR = Questions.Tables[0] .Строки[0]; Question.Text=DR[0].ToString()+ из +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());Questions.Tables[0].Rows.Remove(DR);   -  person Nitin Turankar    schedule 10.12.2013
comment
@NitinTurankar Извините за поздний ответ, вам нужно добавить @Name к комментарию, иначе никто не получит уведомление о вашем комментарии, однако рассмотрите предложение Bhavesh.   -  person Suraj Singh    schedule 10.12.2013
comment
@BhaveshKachhadiya, сэр. Любой пример для списка данных.   -  person Nitin Turankar    schedule 10.12.2013


Ответы (1)


Да, смотрите дальше. Я добавил пример кода. можешь попробовать. Поместите этот код на свою страницу 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>
person Bhavesh Kachhadiya    schedule 10.12.2013
comment
сэр, в этом ‹%$ ConnectionStrings:ConnectionStringKeyHere%› ConnectionStringKeyHere означает нашу строку подключения? - person Nitin Turankar; 10.12.2013
comment
@NitinTurankar это значение ключа строки подключения, которое вы определили в файле web.config. - person Bhavesh Kachhadiya; 10.12.2013
comment
Означает имя этой строки подключения - person Nitin Turankar; 10.12.2013