从 gridview c# 设置自定义 NavigateUrl 值
Set custom NavigateUrl value from gridview c#
我有一个 gridview,我想在其中加载用户详细信息。在这个 gridview 中,我想让用户 phone 成为 hyperlink。这样他们就可以单击 link,它会使用存储在他们电脑上的 phone 软件自动拨打该号码。如果您在 html:
中使用以下语法,则效果很好
<a href = "tel:07123456789">07123456789</a>
我的问题是我想在填充 phone 数字的网格视图中执行此操作。 html 前面必须有 'tel:' 位。我已经尝试了一切请帮助!我基本上想要上面但是在 gridview 中呈现加载的 HomeNo,其中 phone 数字应该是......帮助!
网格视图:
<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>
如果您有正在读取的数据,您需要在 also 中执行此操作,您需要在 DataGrid
的 DataBound
事件中执行一些代码
例如,我在当前的数据网格中将姓名和电子邮件地址作为 link,我是这样做的
<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;
}
}
}
<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>
我有一个 gridview,我想在其中加载用户详细信息。在这个 gridview 中,我想让用户 phone 成为 hyperlink。这样他们就可以单击 link,它会使用存储在他们电脑上的 phone 软件自动拨打该号码。如果您在 html:
中使用以下语法,则效果很好 <a href = "tel:07123456789">07123456789</a>
我的问题是我想在填充 phone 数字的网格视图中执行此操作。 html 前面必须有 'tel:' 位。我已经尝试了一切请帮助!我基本上想要上面但是在 gridview 中呈现加载的 HomeNo,其中 phone 数字应该是......帮助! 网格视图:
<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>
如果您有正在读取的数据,您需要在 also 中执行此操作,您需要在 DataGrid
的DataBound
事件中执行一些代码
例如,我在当前的数据网格中将姓名和电子邮件地址作为 link,我是这样做的
<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;
}
}
}
<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>