我需要替换每个数据绑定项的链接。我已经检查了datarow的数据绑定事件。问题是我无法控制链接显示的位置。我试图远离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对象的某个字段提供链接。如上所述。我想用rssobject的link属性替换添加到datagrid的每个项目的News.aspx。
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
答案 0 :(得分:0)
我找到了一种插入&lt;%#Eval%&gt;的方法声明我要改变的属性。我指向rssobject的正确属性,以及它的工作原理。
<Columns>
<asp:TemplateField>
<ItemTemplate>
<blockquote>
<strong><a href='<%#Eval("Link")%>'>
<%#Eval("NewsDesc")%></a></strong>
<br />
<span class="italic">
<%#Eval("NewsDate")%></span>
</blockquote>
</ItemTemplate>
</asp:TemplateField>
</Columns>