2012-04-23 1 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> 

не показывает никаких ошибок в встроенном коде, просто сообщает: Parser Сообщение об ошибке: Тег сервера не хорошо сформирован.

UPDATE: Вот в ASP после добавления HyperLinkField столбцам

<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> 

Эта строка кода считывает значение из раствора шаблонные поля представленной Джеймсом Джонсоном ...

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

Он заслуживает если этот поток когда-либо разблокируется.

Это страница ASP с помощью VB.net

Спасибо за любую помощь.

+0

Они разблокирован пост для нас , Думаю, вы можете принять сейчас. –

ответ

3

Используйте HyperLinkField:

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

Если у вас возникли проблемы с выше, вы можете просто использовать TemplateField с HyperLink управления в нем:

<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

Используйте коллекцию datakey, и вы можете получить адрес электронной почты по индексу строки. Дайте мне одну секунду, и я обновлю свой пример. –

 Смежные вопросы

  • Нет связанных вопросов^_^