2015-02-06 80 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