2013-05-06 3 views
0

레코드 모음이 있으며 각 레코드에는 ID와 설명이 있습니다. 이제 내 formview에 8 개의 텍스트 상자가 있고 각 텍스트 상자에 각 레코드의 설명 을 보유하고 싶습니다.asp.net 데이터 컬렉션을 사용하여 FormView 데이터 바인딩

그래서 나는이

Text='<%# Eval("Record[0].Description") %>' /> 

이 오류, 그것을 할 수있는 다른 방법을 제공한다면?

또한 마크 업에서 코드를 수행 할 수 있습니까, 아니면 formview의 databound 메소드 아래에서 코드에서 수행해야합니까?

고마워요.

+0

어떤 오류입니다 중계기 내부에, 당신은 당신의 외부 데이터 소스에 바인딩 리피터에서

<asp:repeater ID="rep" runat="server" DataSource='<%# Eval("Record") &>'> <ItemTemplate> <asp:textbox id="txt" runat="server" Text='<%# Eval("Description") &>' /> </ItemTemplate> </asp:repeater> 

: 당신은 내부에 중계기를 사용할 수 –

답변

1

FormView는 데이터 목록 표시를위한 것이 아닙니다.

데이터 목록이있는 경우 GridView 또는 ListView을 사용해야합니다.

단일 레코드가있는 데이터 소스로 FormView를 바인딩 한 다음 데이터 소스의 필드를 직접 평가하십시오.

즉 이렇게 :

<asp:FormView ID="FormView1" runat="server" DataSourceID="SqlDataSourceId"> 
    <ItemTemplate> 
     <asp:TextBox id="txtDescription" 
        Text='<%# Eval("Description") %>' /> 

     <asp:TextBox id="txtName" 
        Text='<%# Eval("Name") %>' /> 


     .. 
    </ItemTemplate> 
</asp:FormView> 

그래서 기본적으로, 당신의 FormView 다른 수 DataField를 포함해야하고 그것은 단지 하나 개의 항목을 갖는 데이터 소스에 바인딩해야합니다. 당신의 데이터 컨텍스트 레코드

+0

답장을 보내 주셔서 감사합니다. 하지만 여기에 내 상황이있다 - 나는 템플릿을 편집 할 수있는 formview가 있고 formview에는 8 개의 텍스트 박스가있다. 그 texboxes의 데이터는 8 개의 레코드로 구성됩니다. 이제 formview의 편집 모드로 들어가면, 그 8 개의 레코드 컬렉션이 생깁니다. 사용자가 값을 변경하여 데이터를 저장할 수 있도록 어떻게 그 8 개의 texbox를 채우나요 ?? – Prashant

+0

귀하의 상황은 아직 나에게 명확하지 않습니다. formView의 각 필드를 하나의 레코드로만 묶어 봅니다. 8 개의 다른 데이터 필드로 묶어야합니다. –

+0

그래, 내 컬렉션을 8 개의 다른 데이터 필드로 나누고, 최선의 방법이 아닐 수도 있습니다. 그러나 그것은 효과가있다. – Prashant

0

? 레코드 리피터를 보여주고 싶다면
관련 문제