2013-04-09 8 views
0

Мне нужно заменить ссылку для каждого элемента, связанного с данными. Я уже проверил событие базы данных 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 
+0

Попробуйте использовать 'жерех:.. контроль hyperlink' вместо управления HTML (в поле шаблона) Затем в' OnRowDataBound' использования событий 'FindControl() ', чтобы получить гиперссылку. Затем назначьте ее поле href. – mshsayem

+0

Спасибо за предложение. Я рассмотрю его. – Ccorock

ответ

0

Я нашел способ, чтобы вставить <% # Eval%> заявления в атрибут я хотел изменить. Я указываю его к правильному свойству 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> 

 Смежные вопросы

  • Нет связанных вопросов^_^