2015-02-06 102 views
0

我有一個gridview,我想加載用戶的詳細信息。在這個gridview中,我想讓用戶的電話號碼成爲一個超鏈接。這是因爲他們可以點擊鏈接並使用存儲在他們電腦上的手機軟件自動撥打該號碼。從gridview c#設置自定義NavigateUrl值#

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

我的問題是,我想這樣做,其中populattes的電話號碼一個GridView:如果您使用以下語法在HTML這工作得很好。 html必須先在它前面加上'tel:'位。我已經嘗試了一切,請幫助!我基本上要上面,但是在gridview中用加載的HomeNo渲染電話號碼應該是...... 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

非常感謝!那就是我正在尋找的解決方案。事實證明,我並不遙遠! – wubblyjuggly 2015-02-09 10:09:17

2

你需要,如果你有它的讀取數據要做到這一點的內部也需要做DataBound事件DataGrid的

的例如裏面的一些代碼,我有名字和電子郵件地址作爲這裏我目前的數據網格中的鏈接是我如何做到這一點

<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

這是他用一個DataGrid他需要什麼,但他是用一個gridview 。所以它應該是一個TemplateField – DaneEdw 2015-02-06 16:29:49

+0

這是正確的.. @DaneEdw我做了這個使用DataGrid – MethodMan 2015-02-06 16:30:50

+0

如果他的原始代碼,我認爲他可以只投射字段的參考爲'(HyperLink)',例如 '((HyperLink)GridView1。行[e.RowIndex] .Cells [0] .Controls [0]).Text' – MethodMan 2015-02-06 16:32:35