2015-02-06 14 views
0

사용자 정보를로드하려는 gridview가 있습니다. 이 gridview에서 나는 사용자 전화 번호를 하이퍼 링크로 만들고 싶습니다. 이것은 그들이 링크를 클릭 할 수 있도록하고 자동으로 자신의 PC에 저장된 전화 소프트웨어를 사용하여 전화 번호.Gridview C에서 사용자 지정 NavigateUrl 값 설정 #

<a href = "tel:07123456789">07123456789</a> 

내 문제는 내가 전화 번호를 populattes있는 gridview에서이 작업을 수행 할 수 있다는 것입니다 : 당신이 HTML에서 아래 구문을 사용하는 경우이 잘 작동합니다. html에는 먼저 'tel :'비트가 있어야합니다. 나는 모든 것을 시도해 봤다! 본질적으로 위의 내용을 원하지만 전화 번호가 있어야하는로드 된 HomeNo와 함께 gridview에서 렌더링하려고합니다. HElp! GRIDVIEW :

<asp:GridView ID="GridView1" runat="server" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="ds"> 
      <Columns> 

       <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True" SortExpression="ID" /> 
       <asp:HyperLinkField DataTextField="HomeNo" HeaderText="HomeNo" NavigateUrl="tel:" /> 
      </Columns> 
     </asp:GridView> 

답변

3
<asp:GridView ID="GridView1" runat="server" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="ds"> 
    <Columns> 
     <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True" SortExpression="ID" /> 
     <asp:TemplateField> 
     <ItemTemplate> 
      <asp:HyperLink ID="HyperLink1" runat="server" 
       NavigateUrl='<%# Eval("HomeNo", "tel:{0}") %>' 
         Text='<%# Eval("NomeNo") %>'></asp:HyperLink> 
     </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 
+0

Yey 대단히 감사합니다! 그게 내가 찾던 해결책 이었어. 내가 멀리 떨어져 있지 않은 것을 끈다! – wubblyjuggly

2

당신은 예를 들어, 데이터 그리드

DataBound 이벤트의 내부에 몇 가지 코드를 할 필요에서 당신이 그것을 읽고 데이터가있는 경우 또한이 내부를 할 필요가 나는 이름이 여기에 내 현재 데이터 그리드에 링크로 이메일 주소는 내가 그것을 어떻게

<asp:TemplateColumn HeaderText="Scheduler" HeaderStyle-Font-Bold="true" HeaderStyle-Width="145"> 
    <ItemTemplate> 
     <a href='<%#Eval("Email_Address") %>' ><%# Eval("Scheduler") %></a> 
    </ItemTemplate> 
    <HeaderStyle Font-Bold="True" /> 
</asp:TemplateColumn> 

protected void dgShippers_DataBinding(object sender, EventArgs e) 
{ 
    foreach (DataRow r in dtShippers.Rows) 
    { 
     if (!System.Uri.IsWellFormedUriString(r.ItemArray[3].ToString(), UriKind.Absolute)) 
     { 
      var tempHref = "<a href=mailto:" + r.ItemArray[4].ToString() + " />" + r.ItemArray[3].ToString()+ "</a>"; 
      r.Table.Rows[0]["Scheduler"] = tempHref; 
     } 
    } 
} 
+0

이 그가 데이터 그리드를 사용한다면 그가 필요하지만, 그가 GRIDVIEW 사용하는 것입니다 . 그래서 그것은 TemplateField – DaneEdw

+0

맞습니다. @DaneEdw 그의 원래 코드는 그가 참조로'(HyperLink)'예를 들어 '((HyperLink) GridView1)으로 캐스팅 할 수 있다고 생각한다면 DataGrid – MethodMan

+0

을 사용하여이 작업을 수행했습니다. 행 [e.RowIndex] .Cells [0] .Controls [0]). 텍스트 ' – MethodMan