从gridview c#设置自定义NavigateUrl值

时间:2015-02-06 16:07:03

标签: c# asp.net gridview navigateurl

我有一个gridview,我想在其中加载用户详细信息。在这个gridview中,我想让用户的电话号码成为一个超链接。这样他们就可以点击链接,它会使用手机上存储的手机软件自动拨打该号码。如果您在html中使用以下语法,这可以正常工作:

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

我的问题是我想在一个播放电话号码的gridview中这样做。 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>

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:2)

如果你有数据需要在DataGrid的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;
        }
    }
}