2012-01-23 2 views
2

Я взял код, который создает Gridview с SQLDataAdapter.Как сделать столбец gridview ссылкой по электронной почте

Один из столбцов - это адрес электронной почты, который я хотел бы сделать гиперссылкой для открытия Outlook (пользователи defautl email client).

Управление Gridview осуществляется по коду. Есть ли способ сделать это?

Вот код ....

If counter > 0 Then  
    Dim command4 As New SqlCommand(queryString4, connection) 
    Dim mySQLDataAdapter4 As New SqlDataAdapter(command4) 

    mySQLDataAdapter4.Fill(emailDataset, "needsEmail") 
End If 
Next 
connection.Close() 


GridView4.DataSource = emailDataset 
GridView4.DataBind() 

Существует код, который проверяет, что данные возвращаются, что я снял для удобства чтения.

Я возвращаю 4 столбца в запросе. Все отлично работает, просто хочу сделать один из столбцов и активную ссылку по электронной почте.

Спасибо,

ответ

3

сделать это с помощью поля шаблона следующим образом:

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

должны оказывать

|<a href="[email protected]">[email protected]</a>| 

Редактировать:

Вам не нужно все столбцы - это поля шаблонов. Остальная часть колонн может быть просто так:

<asp:BoundField DataField="MyName" HeaderText="MyName" 
     SortExpression="MyName" /> 
<!--adding your templatefield--> 
<asp:TemplateField HeaderText="email"> 
    <ItemTemplate> 
     <a href="mailto:<%# Bind("email") %>"><%# Bind("email") %></a> 
    </ItemTemplate> 
</asp:TemplateField> 

Вы не размещать вашего GridView кода, так что я угадывание о чем-то из этого. Если вы пытаетесь получить электронную почту из gridview в коде позади, вы можете посмотреть this link. В нем описывается скрытие поля идентификатора, но вы должны иметь возможность сделать то же самое с необработанным адресом электронной почты.

+0

Работает отлично !!!! получил некоторые столбцы, чтобы очистить его с момента его повторения, но без особого труда. СПАСИБО!!! – htm11h

+0

У меня проблема сейчас, когда я преобразовал столбцы в TemplateFields и устанавливаю столбцы autoGenerate в False. Я не могу читать столбцы с Dim emailAdd As String = row.Cells (2) .Text и Dim userName As String = row.Cells (0) .Text, который я использую при запуске подпрограммы для отправки электронной почты всем пользователям перечисленные в Gridview. Муравьиные идеи, как это сделать, за исключением установки AutoGenRows в False? Столбцы не выходят в gridview, которые они построили с помощью SQLDataAdapter, см. OP. – htm11h

+0

взгляните на мое редактирование и посмотрите, поможет ли это. дайте мне знать, смогу ли я помочь вам. – Eonasdan

0

я создать метод на RowDataBound событие для вашей сетки в коде позади. У вас будет доступ к данным этой строки и может форматировать каждую ячейку, как вам хотелось бы (в этом случае ссылка mailto:email).

+0

Работа в этом сейчас. – htm11h

1

Похоже, вам нужно настроить шаблонную колонку в gridview и привязать ее к адресу электронной почты.

More information

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