各データ バインド アイテムのリンクを置き換える必要があります。データ行のデータバインド イベントは既にチェックアウトしています。問題は、リンクが表示される場所を制御できないことです。私はjavascriptから離れて、ほとんどコードビハインドに留めようとしています。以下は、私のaspコードと私が持っている背後にあるコードです。また、html テンプレート項目に変更せずに、できるだけ同じままにしておきたいと思います。私が使用しているプロセスは次のとおりです。
ブログ エントリのすべてのフィールドとデータを含むカスタム オブジェクトがあります。これらのアイテムはリストに入れられ、データグリッドに提供されます。
<asp:GridView ID="grdRecentNews" runat="server" AutoGenerateColumns="False" DataKeyNames="Key"
GridLines="None" PageSize="4" ShowHeader="False"
AllowPaging="True">
<PagerSettings Visible="False" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<blockquote>
<%-- <strong><a href=**"News.aspx"**>--%>
<strong><a href="News.aspx">
<%#Eval("NewsDesc")%></a></strong>
<br />
<span class="italic">
<%#Eval("NewsDate")%></span>
</blockquote>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
これは、Databound イベントで使用したコードです。問題は、Rss オブジェクトのフィールドの 1 つにのみリンクを提供したいということです。上と下のように。データグリッドに追加された各アイテムの News.aspx" を rssobject の link プロパティに置き換えたい。
Protected Sub grdRecentNews_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grdRecentNews.RowDataBound
If e.Row.DataItem IsNot Nothing AndAlso e.Row.DataItem.ToString = "RssEntry" Then
Dim curItem As RssEntry = CType(e.Row.DataItem, RssEntry)
e.Row.Attributes.Add("href", curItem.Link) 'data-url
End If
End Sub