데이터 뷰에서 프로그래밍 방식으로 내 detailsview에서 컨트롤을 수정할 수 있어야합니다. 지금이 코드를 사용하고 있지만 "인덱스가 범위를 벗어났습니다."오류가 발생합니다.프로그래밍 방식으로 detailsview에서 컨트롤에 액세스하려면 어떻게합니까?
Private Sub dtlApplication_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles dtlApplication.DataBound
Dim resumeLink As HyperLink = dtlApplication.Rows.Item(0).FindControl("lnkResume")
resumeLink.NavigateUrl = "Resumes/"
End Sub
나는 이것을 시도했지만 "개체 참조가 개체의 인스턴스로 설정되지 않았습니다."라는 오류가 발생했습니다.
Private Sub dtlApplication_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles dtlApplication.DataBound
Dim resumeLink As HyperLink = dtlApplication.FindControl("lnkResume")
resumeLink.NavigateUrl = "Resumes/"
End Sub
나는 문제가 내 주요있는 gridview에서 행을 선택할 때까지 그들을 얻을하지 않기 때문에 페이지가 처음로드 할 때 위해 DetailsView 어떤 컨트롤이되지 않는 것 같아요. 기본적으로, 내가 gridview에서 행을 선택할 때이 코드를 실행하려고하는데, 페이지가 처음로드 될 때가 아닙니다. 그게 될 수 있을까요? 그렇다면 detailsview 데이터 바인딩에 없으면이 코드를 어디에 실행해야합니까?
<asp:DetailsView ID="dtlApplication" runat="server" AutoGenerateRows="false"
DataKeyNames="appID" DataSourceID="ds2" CellPadding="0" BorderColor="Transparent"
BorderWidth="0px" GridLines="None" HorizontalAlign="Left" Width="459" CssClass="dtlView">
<Fields>
<asp:TemplateField showheader="false">
<ItemTemplate>
<h3>Resume</h3>
<asp:HyperLink runat="server" ID="lnkResume" Text="View Resume »"></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Fields>
<PagerSettings Mode="NextPreviousFirstLast" PageButtonCount="5" FirstPageText="← First" LastPageText="Last →"
nextpagetext="Next »" previouspagetext="« Previous" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" CssClass="paging" />
</asp:DetailsView>
<asp:SqlDataSource ID="ds2" runat="server" ConnectionString="<%$ ConnectionStrings:cn %>"
SelectCommandType="StoredProcedure" SelectCommand="sp_SelectApplicationDetail"
EnableCaching="true" CacheDuration="600">
<SelectParameters>
<asp:ControlParameter Name="appID" ControlID="gvAdmin" PropertyName="SelectedValue"></asp:ControlParameter>
</SelectParameters>
</asp:SqlDataSource>
에 태그를 추가 할 수 있습니까? – Alex
마크 업으로 질문을 업데이트했습니다 –