2012-04-23 3 views
1

이 템플릿 필드를 gridview 열에 추가 했으므로 코드의 열에서 전자 메일 주소 값에 액세스해야합니다. 처음에 DataKeyNames를 추가했으나 첫 번째 레코드 값만 가져옵니다. 루프를 실행할 때 각 레코드의 값을 선택하는 것 같지 않습니다.gridview 열의 하이퍼 링크 액세스

쉬운 방법을 알고 있지 않으면 내가 FindControl 문을 사용할 수 있도록 전자 메일을 레이블에 추가하고 싶습니다. 라벨에 이메일 하이퍼 링크가 표시되지 않습니다. 전자 메일 주소를 읽을 수 없다는 점을 제외하면 레이블 태그없이 잘 작동합니다. 의

<asp:TemplateField HeaderText="Email"> 
    <ItemTemplate>  
     <a href="mailto:<%# Eval("email") %>"><%#Eval("email")%> </a>  
    </ItemTemplate> 
</asp:TemplateField> 

시도 변동 :

<asp:TemplateField HeaderText="Email"> 
    <ItemTemplate> 
     <asp:Label ID="Email99" runat="server" <a href="mailto:<%# Eval("email") %>"><%#Eval("email")%> </a> ></asp:Label> 
    </ItemTemplate> 
</asp:TemplateField> 

인라인 코드에서 오류를 표시하지 않습니다, 단순히보고합니다 파서 오류 메시지 : 서버 태그가 잘 형성되지 않는다.

UPDATE : 여기

Dim emailAdd As String = GridView4.DataKeys(dr.RowIndex)("Email") 

그는 가치가 ... 열

<Columns>  
    <asp:BoundField DataField="usersLogonName" HeaderText="Logon Name" > 
     <ControlStyle Width="50px" /> 
    </asp:BoundField> 
    <asp:BoundField DataField="userDBLanguage" HeaderText="Language" > 
     <ControlStyle Width="30px" /> 
    </asp:BoundField> 

    <asp:HyperLinkField runat="server" DataNavigateUrlFields="email" DataNavigateUrlFormatString="mailto:{0}" DataTextField="email" />  

    <asp:BoundField DataField="LastActivityDate" HeaderText="Last Activity" />                            
</Columns> 

코드의이 행 제임스 존슨에 의해 제공되는 템플릿 기반 필드 솔루션의 값을 읽고에 HyperLinkField를 추가 한 후 ASP입니다 이 스레드가 잠금 해제 된 경우 크레디트.

이것은 VB.net을 사용하는 ASP 페이지입니다.

어떤 도움을 주셔서 감사합니다.

+0

: 위의 문제가 발생하는 경우

<asp:GridView ID="GridView1" runat="server" ...> <Columns> <asp:HyperLinkField DataNavigateUrlFields="email" DataNavigateUrlFormatString="mailto:{0}" DataTextField="email" /> </Columns> </asp:GridView> 

, 당신은 단지에 HyperLink 제어와 TemplateField을 사용할 수 있습니다 . 이제 네가 받아 들일 것 같아. –

답변

3

사용은 HyperLinkField : 그들은 우리를 위해 게시물을 잠금 해제

<asp:TemplateField HeaderText="Email"> 
    <ItemTemplate> 
     <asp:HyperLink runat="server" Text='<%# Eval("email") %>' NavigateUrl='<%# string.Format("mailto:{0}", Eval("email"))%>' /> 
    </ItemTemplate> 
</asp:TemplateField> 
+0

괜찮 았는데, 그 부분을 고쳤지 만 원래 문제는 그대로 있습니다. 코드 뒤에서는 행을 반복하면서 하이퍼 링크에서 해당 이메일 주소를 읽어야합니다. 어떻게 그 이메일 주소 값을 얻을 수 있습니까? – htm11h

+0

데이터 키 컬렉션을 사용하면 행 인덱스를 통해 이메일 주소를 가져올 수 있습니다. 잠시만 기다려주세요. 예를 들어 보겠습니다. –