Мне нужно заменить ссылку для каждого элемента, связанного с данными. Я уже проверил событие базы данных datarow. Проблема в том, что я не могу контролировать, где появляется ссылка. Я стараюсь держаться подальше от javascript и держать его в основном в коде. Ниже приведен мой asp-код и код, который у меня есть. Я также хочу попытаться сохранить как можно больше, не переходя на элементы шаблона html. Процесс Im используется следующим образом.Динамическое добавление ссылки в поле шаблона
У меня есть пользовательский объект, который содержит все поля и данные записи в блоге. Эти элементы помещаются в список, а затем передаются в datagrid.
<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. как указано выше. Я хочу, чтобы заменить News.aspx»для каждого элемента добавляется к сетке со свойством связочной rssobject в.
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
Попробуйте использовать 'жерех:.. контроль hyperlink' вместо управления HTML (в поле шаблона) Затем в' OnRowDataBound' использования событий 'FindControl() ', чтобы получить гиперссылку. Затем назначьте ее поле href. – mshsayem
Спасибо за предложение. Я рассмотрю его. – Ccorock