2014-09-01 10 views
1

안녕하십니까. 게시하기 전에 여러 번 검색합니다. 설문 조사와 같은 프로젝트를 진행 중입니다. [질문 및 답변] 데이터리스트에 모든 질문을 올릴 수있게되었습니다. 이제는 질문마다 라디오 버튼 목록에 답변을 표시하는 방법을 찾고 있습니다.데이터 목록 내부에 라디오 버튼 목록이 바인딩

여기 여기 페이지로드

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 테이블과 Answer 테이블 사이의 공통 열은 Question_id입니다.

+0

사용자가 답변을 표시하거나 사용자가 답변을 기록하도록 허용 하시겠습니까? 테이블 "Qs"에 비트 값이있는 열이 있습니까? –

+0

미안 트레버, 무슨 뜻인지 이해가 안되네. 하지만 QS 테이블에는 [Qid, Question] 만 있습니다. 질문 ID를 기준으로 답변 테이블에서 데이터를 가져 오기 위해 다른 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