문제

자리 표시 자와 관련된 문제는 다음과 같습니다.

리피터가 있고 그 리피터 안에는 아이템 템플릿이 있습니다. 이제이 템플릿은 몇 개의 테이블과 함께 형식화되었지만이 질문에 대해서는 읽기 쉽게 읽을 수 있도록 제거했습니다.

<asp:Repeater ID="Repeater1" OnItemDataBound="R1_ItemDataBound" runat="server">

   <ItemTemplate>
      <asp:PlaceHolder ID="phAnswers" runat="server"></asp:PlaceHolder>               
   </ItemTemplate>
</asp:Repeater>

그런 다음 이벤트에서 OnitemDatabound에서 새로운 자리 표시자를 만들고 기존 (Phanswers)에 바인딩하지만 자리 표시자는 생성 된 Radiobuttons/TextBox로 업데이트되지 않습니다.

    Dim rdList As New RadioButtonList
    Dim newRadio As New RadioButton

 If (e.Item.ItemType = ListItemType.Item) Or _
        (e.Item.ItemType = ListItemType.AlternatingItem) Then

        Dim tempPH As PlaceHolder

        tempPH = e.Item.FindControl("phAnswers")

        For x As Integer = 0 To (t_MC.Count - 1)

                newRadio = New RadioButton

                newRadio.ID = "Answer" + x.ToString
                newRadio.Text = t_MC(x).Value
                rdList.Controls.Add(newRadio)

            Next

   tempPH.Controls.Add(rdList)

Phanswers가 새로운 Tempph 자리 표시 자로 업데이트되지 않는 이유는 무엇입니까? 건배

도움이 되었습니까?

해결책

OnitemDatabound는 컨트롤을 추가하기에는 너무 늦을 수 있습니다. onitemcreated에서 시도하고 도움이되는지 확인하십시오. 빠른 테스트입니다. 이벤트 이벤트 선언을 변경하십시오.

OnItemCreated="R1_ItemDataBound"

이 아이디어가 도움이되지 않으면 쉽게 다시 전환 할 수 있습니다.

편집 - 방금 뭔가 알아 차렸다. Radiobuttonlist를 채우려면 다음과 같은 ListItems를 사용해야합니다.

ListItem item - new ListItem("your text", "your value");
rdList.Items.Add(item);

이것이 아마도 radiobuttonlist가 나타나지 않았지만 고독한 라디오 버튼이 작동하는 이유 일 것입니다.

다른 팁

a를 사용해보십시오 Panel 대신 a PlaceHolder

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top