2009-09-21 7 views
0

Как вы получаете доступ к asp-управлению внутри datalist. Например, я хотел бы, но в настоящее время не могу получить доступ к элементу управления HyperLink или элементу управления ImageButton встроенным кодом или в файле с кодом.Доступ к элементам управления asp в datalist

<asp:DataList ID="DataList1" runat="server" AlternatingItemStyle-CssClass="altArtStyle"> 
     <HeaderTemplate> 
      <table> 
       <tr> 
        <td> 
         <asp:HyperLink ID="lnkTitle" runat="server" NavigateUrl="Default.aspx?order_by=title&direction=ASC" > 

         Title 
         </asp:HyperLink> <asp:ImageButton id="imgbtnTitle" src="/_images/hover-down.gif" runat="server"/> 
        </td> 

       </tr> 
      </table> 
     </HeaderTemplate> 

ответ

0

Это зависит. Например, если вы хотите изменить заголовок во время выполнения, в одном из событий привязки объекта, вы бы сделали что-то вроде этого заголовка данных, выполните поиск по гиперссылке и с этой ссылкой, сделайте это ...

+0

Не могли бы вы привести пример с коротким кодом? Я попытался найти элемент управления, но получил ссылку на объект жалобы, не установленную в экземпляр объекта. Вот код, который я использовал после привязки набора данных. дим imgbtnTitle Как ImageButton = FindControl ("imgbtnTitle") Если imgbtnTitle.ImageUrl = "/_images/hover-down.gif" Тогда imgbtnTitle.ImageUrl = "/_images/hover.gif" ElseIf imgbtnTitle.ImageUrl = " /_images/hover.gif "Затем imgbtnTitle.ImageUrl =" /_images/hover-down.gif " Конец Если – contactmatt

+0

Похож на то, что Джейсон покрыл его. Я бы добавил, что вам может понадобиться использовать управление с помощью CType. Взгляните на: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.datalist.itemdatabound.aspx – Steve

1

Как правило, вам нужно вызвать FindControl для объекта DataListItem, чтобы найти элемент управления в конкретной строке. В вашем примере, FindControl будет работать только на строку заголовка, как в следующем примере:

Protected Sub DataList1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles DataList1.ItemDataBound 
    If e.Item.ItemType = ListItemType.Header Then 
     Dim btn As ImageButton = e.Item.FindControl("imgbtnTitle") 
     If btn IsNot Nothing Then 
      ' Do stuff here. 
     End If 
    End If 
End Sub 
1

же вы можете сделать с ярлыками и гиперссылок

private void DataList1_ItemDataBound(object sender, DataListItemEventArgs e) 
    { 
     if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem)) 
     { 
      ImageButton imgbutton = (ImageButton)e.Item.FindControl("imgbtnTitle"); 
      imgbutton.ToolTip = "abc"; 
     } 
    } 
0

Да, вы получите доступ к управлению Asp внутри datalist с использованием данных Datalist Data Data

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