Доступ к элементам управления asp в списке данных - PullRequest
0 голосов
/ 21 сентября 2009

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

<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>

Ответы [ 4 ]

1 голос
/ 21 сентября 2009

Как правило, вам нужно вызвать 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 голос
/ 20 апреля 2012

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

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 голосов
/ 08 марта 2013

Да, вы можете получить доступ к элементам управления asp внутри списка данных, используя привязку данных элемента списка данных

protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        HyperLink TitleLink = (HyperLink)e.Item.FindControl("lnkTitle");
    }

}
0 голосов
/ 21 сентября 2009

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

...