다음은 퍼즐입니다. 마스터 페이지의 데이터 소스는 (그랜드)은 하위 페이지에 텍스트를 포함하는 라벨 제어의 SelectParameter위한 의미 :ASP 마스터 페이지 : 하위 페이지의 값을 마스터 페이지의 SqlDataSource 매개 변수에 전달하는 방법
<asp:SqlDataSource ... SelectCommand="SELECT * FROM [tblMyTable] WHERE (([strField] = ?) ">
<SelectParameters>
<asp:ControlParameter Name="strField" ControlID="cphMaster$cphChild$lblGrandchild" propertyname="Text" DbType="String"/>
</SelectParameters>
</asp:SqlDataSource>
그러나 이것은 에러 ("System.Data.OleDb.OleDbException 생성 데이터 타입 불일치 ").
나는 strField가 실제로 문자열인지, ContentPlaceHolder (cph) 컨트롤이 해당 ID로 올바르게 식별되는지 확인했습니다. 어떤 아이디어?
그리고 'ControlParameter가 ContentPlaceholder (s)에있는 컨트롤을 읽는'방식으로 SelectParameter에 값을 전달하는 합리적인 방법이 무엇입니까?
나는 당신이하고 싶은 것을 할 수 있다고 확신합니다. 하지만 디자인에 문제가있을 수 있다고 생각합니다. 마스터 페이지의 특정 페이지에 나타나는 특정 작업을 수행하는 이유는 무엇입니까? 모든 페이지에 적용되지 않으면 마스터 페이지에 없어야합니다. 원하는 기능이 있다면 직접 페이지 클래스를 확장 한 다음 다른 페이지에도 사용할 수 있습니다. 그런 다음 레이아웃, 모양 및 느낌에 대한 마스터 페이지를 가질 수 있습니다. – uriDium
@uriDium 당신은이 질문을하는 것이 옳은데, 사실이 유형의 솔루션에 대한 진정한 필요성이 있습니다. 각기 다른 기준의 결과 (일반적인 목록보기 디자인에서)를 사용하는 약 40 개의 방문 페이지가 각 페이지의 개별 요소 - 제목, 텍스트, 이미지 등)와 중첩 된 마스터 페이지에 표현 된 많은 공통 요소 (배너, 꼬리말 및 목록보기) – htchmn