0

ユーザーの詳細をロードしたいグリッドビューがあります。このグリッドビューでは、ユーザーの電話番号をハイパーリンクにしたいと考えています。これは、リンクをクリックすると、PC に保存されている電話ソフトウェアを使用して番号を自動的に呼び出すためです。html で以下の構文を使用すると、これは正常に機能します。

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

私の問題は、電話番号を入力するグリッドビューでこれを行いたいということです。HTML には、最初に「tel:」ビットが必要です。私はすべてを試しました助けてください!私は本質的に上記のことを望んでいますが、電話番号があるはずのロードされた HomeNo を使用してグリッドビューでレンダリングします...ヘルプ! グリッドビュー:

   <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>
4

2 に答える 2

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;
        }
    }
}
于 2015-02-06T16:21:44.187 に答える