1
질문에는 기본 키가 중계기의 항목 템플릿 행에 관한있는 gridview에 기본 키 ID를 전달 어떻게중첩 된 행에서 중첩 된 Gridview로 ID를 전달하는 방법은 무엇입니까?
리피터 안에 gridview에있는 경우?
현재이를 PK 및 컨트롤 매개 변수가 들어있는 숨겨진 필드를 사용하여 검색하고이를 gridview에 바인딩하려고 시도하고 있습니다.
현재의 에러
ControlParameter 'PK'에서 제어 'hidPK'을 (를) 찾을 수 없습니다.
단축 코드
<asp:Repeater ID="rpt" RunAt="Server">
<ItemTemplate>
<asp:HiddenField ID="hidPK" runat="server" Value='<%# DataBinder.Eval(Container.DataItem, "PK") %>'/>
<asp:GridView ID="GV" DataSourceID="sqlSource"></asp:GridView>
</ItemTemplate>
</asp:Repeater>
<asp:SqlDataSource ID="sqlSource" RunAt="Server" SelectCommand="spPopulateGridview" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:ControlParameter Type="Int32" Name="PK" DefaultValue="0" ControlID="hidPK"/>
</SelectParameters>
</asp:SqlDataSource>
는
Protected Sub rpt_ItemDataBound(Sender As Object, e As RepeaterItemEventArgs) Handles rpt.ItemDataBound
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
Dim gv As GridView = TryCast(e.Item.FindControl("GV"), GridView)
gv.DataSource = ds
gv.DataBind()
End If
End Sub
감사 한스에서의 SqlDataSource를 이동 시도 할 수 있습니다, 내가 같이이 고려 않았다 편집 잘못한 이유 또는 repeater로 이동 시키면 데이터 소스가 선언되지 않은 것으로 간주됩니다. "오류 : 'sqlSource'가 선언되지 않았습니다." 내가 더 이상 중계기 내에서 sqldatasource를 찾을 수 있기 때문에 용의자. 어떤 아이디어? – Obsidian
ItemTemplate에서 어떻게 추가 했습니까? 나는 testdata로 시험해 보았는데 위와 같이 작동하는 것 같았다. –
예. 페이지로드시 코드 뒤에 sqlSource가 선언되었습니다. 어쨌든 이것이 고유 한 가치를 얻는 방법이라고 생각하십니까? PKID를 리피터 컨트롤에 직접 바인딩 할 수 있습니까? – Obsidian