このテンプレート フィールドを gridview 列に追加し、コード ビハインドの列から値、電子メール アドレスにアクセスする必要があります。最初に DataKeyNames を追加しましたが、これは最初のレコード値のみを取得します。ループを実行するときに、各レコードの値を選択していないようです。
誰かがより簡単な方法を知らない限り、おそらく FindControl ステートメントを使用できるように、電子メールをラベルに追加したいと思います。メールのハイパーリンクがラベルに表示されません。メールアドレスが読み取れないことを除けば、ラベルタグがなくても問題なく動作します。
<asp:TemplateField HeaderText="Email">
<ItemTemplate>
<a href="mailto:<%# Eval("email") %>"><%#Eval("email")%> </a>
</ItemTemplate>
</asp:TemplateField>
以下のバリエーションを試しました:
<asp:TemplateField HeaderText="Email">
<ItemTemplate>
<asp:Label ID="Email99" runat="server" <a href="mailto:<%# Eval("email") %>"><%#Eval("email")%> </a> ></asp:Label>
</ItemTemplate>
</asp:TemplateField>
インライン コードにエラーは表示されず、次のように報告されます。 パーサー エラー メッセージ: サーバー タグの形式が正しくありません。
更新: HyperLinkField を列に追加した後の ASP は次のとおりです。
<Columns>
<asp:BoundField DataField="usersLogonName" HeaderText="Logon Name" >
<ControlStyle Width="50px" />
</asp:BoundField>
<asp:BoundField DataField="userDBLanguage" HeaderText="Language" >
<ControlStyle Width="30px" />
</asp:BoundField>
<asp:HyperLinkField runat="server" DataNavigateUrlFields="email" DataNavigateUrlFormatString="mailto:{0}" DataTextField="email" />
<asp:BoundField DataField="LastActivityDate" HeaderText="Last Activity" />
</Columns>
このコード行は、James Johnson によって提供された Templated Field ソリューションから値を読み取ります...
Dim emailAdd As String = GridView4.DataKeys(dr.RowIndex)("Email")
このスレッドのロックが解除された場合、彼は称賛に値します。
VB.netを利用したASPページです
助けてくれてありがとう。