2008-10-15 1 views
0

내 ASP.NET 웹 응용 프로그램에서 detailsview에 해시 테이블을 바인딩하려고합니다. 이렇게하면 디버그 할 때 웹 페이지에 detailsview가 표시되지 않습니다. 컨트롤의 모든 속성을 검사하고 visible 및 autogeneratecolumns (autogeneraterows 속성이 없음)가 true로 설정되었는지 확인했습니다.visibleView가 true이고 빈 해시 테이블에 바인딩하는 방법에도 불구하고 DetailsView가 표시되지 않습니까?

또한이 detailsview를 해시 테이블에 바인딩하고 싶습니다.하지만 할 때 객체 참조가 데이터 소스 속성으로 인해 객체 인스턴스에 설정되지 않았거나 데이터 소스 = strings.keys (여기서 string은 해시 테이블의 ID입니다.) strings.keys 속성이 null (이 속성을 사용하는 방법에 대한 외부 예제 (동일한 오류)을 사용하여 지정하는 경우에도 지정되지 않음) 인 이유를 이해할 수 있습니다. Detailsview가 Key와 Object 행이있는 빈 테이블을 렌더링하기를 기대했습니다. 내가 어떻게 그걸 얻을 수 있니? 결국, 문자열을 반환하는 함수를 사용하여 해시 테이블에서 가져온 값에 레이블을 바인딩하려고합니다.

감사합니다.

답변

1

빈 문자열의 키 및 값을 포함하는 하나의 요소로 해시 테이블을 초기화 할 수 있습니까? 그런 다음 사용자가 클릭 할 때 선택된 데이터로 다시 채울 수있는 인스턴스화 된 해시 테이블 객체를 갖게됩니다. 또한 해시 테이블을 인스턴스화하기 위해 페이지 수명주기에서 사용하는 이벤트에주의하십시오. 좋아

1

그래서 지금 이런 짓을했습니다

내가 검색하고 해시 테이블 컬렉션에 항목을 추가 할을 담당하는 BLL 클래스가 있습니다. 함수 중 하나는 AddToCollection()이며 key 및 value에 대한 매개 변수를 사용합니다. objectdatasource 컨트롤을 통해이 메서드를 선택하고 매개 변수 값을 구성합니다. 그래도 내 페이지에 detailsview가 표시되지 않습니까?

ASPX 코드 :

<asp:DetailsView ID="CopyDetails" runat="server" AllowPaging="True" 
       Height="161px" Width="140px" BackColor="White" 
       AutoGenerateRows="true" BorderColor="Gray" 
       BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" 
       Font-Size="10px"> 
    <PagerStyle BackColor="#00CCFF" /> 
</asp:DetailsView> 
<br /> 
<asp:ObjectDataSource ID="ObjectDataSource2" runat="server" 
         SelectMethod="ReturnString" TypeName="Strings"> 
    <SelectParameters> 
     <asp:Parameter DefaultValue="Test" Name="SendFrom" Type="String" /> 
     <asp:Parameter DefaultValue="1" Name="StepOfSite" Type="Int32" /> 
    </SelectParameters> 
</asp:ObjectDataSource> 
관련 문제