2014-09-01 4 views
1

Доброе утро. Я ищу много раз, прежде чем отправлять здесь. Я работаю над проектом, подобным опросу [Вопросы и ответы] Я могу получить все вопросы в datalist, теперь я ищу способ отображать ответы в списке кнопок с радио в каждом вопросе.Bind RadiobuttonList внутри DataList

здесь загрузки страницы

protected void Page_Load(object sender, EventArgs e) 
    { 
     string CS = ConfigurationManager.ConnectionStrings["TMConnectionString"].ConnectionString; 
     SqlConnection con = new SqlConnection(CS); 

     //Getting All Questions 

     SqlDataAdapter dr = new SqlDataAdapter("select * from Question ", con); 
     DataSet ds = new DataSet(); 
     dr.Fill(ds, "Qs"); 
     OuterDataList.DataSource = ds.Tables["Qs"]; 
     OuterDataList.DataBind(); 
    } 

здесь тело страницы

<body> 
<form id="form1" runat="server"> 
<h1>Test Page</h1> 
    <asp:DataList ID="OuterDataList" RunAt="server"> 
    <ItemTemplate> 
     <h4><%# DataBinder.Eval (Container.DataItem, "Question") %></h4> 
     <asp:RadioButtonList ID="RadioButtonList1" runat="server"></asp:RadioButtonList> 
    </ItemTemplate> 
    </asp:DataList> 
</form> 

я не знаю, как связать RadioButtonList и групповые ответы. примечание: общий столбец между таблицей вопросов и таблицей ответов - это Question_id

+0

Вы показываете ответы или пытаетесь разрешить пользователям записывать свои ответы? В таблице «Qs» содержится столбец с битовым значением? –

+0

Извините, Тревор, я не понимаю, что вы имеете в виду. но посмотрите, у таблицы Qs есть [Qid, Question] только . Я сделаю еще один SQLDATAAdapter, чтобы получить данные из таблицы ответов на основе идентификатора вопроса. – Bassem

ответ

1

Firt создаст шаблон, как показано ниже.

<asp:DataList runat="server" ID="DataList1" RepeatDirection="Vertical" 
DataKeyField="QuestionID" onitemdatabound="DataList1_ItemDataBound"> 
<ItemTemplate> 
    <table> 
     <tr> 
      <td> 
       <%# Eval("Question") %> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <asp:RadioButtonList runat="server" ID="RadioButtonList1"> 
       </asp:RadioButtonList> 
      </td> 
     </tr> 
    </table> 
</ItemTemplate> 

После этого с помощью DataList1_ItemDataBound вы можете связать ваши ответы.

protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e) 
    { 
     if (e.Item.ItemType == ListItemType.Item) 
     { 
      RadioButtonList RadioButtonList1 = (RadioButtonList)e.Item.FindControl("RadioButtonList1"); 
      //Get questionID here 
      int QuestionID = Convert.ToInt32(DataBinder.Eval(e.Item.DataItem, "QuestionID")); 
      //pass Question ID to your DB and get all available options for the question 
      //Bind the RadiobUttonList here 
     } 

    } 
+0

1000000000 спасибо seminda :), он работает , но мы должны добавить e.Item.ItemType == ListItemType.AlternatingItem также отображать все ответы на все вопросы спасибо :) – Bassem

Смежные вопросы