访问datalist中的asp控件

时间:2009-09-21 15:58:57

标签: asp.net datalist

如何在datalist中访问asp控件。例如,我想(但目前不能)通过内联代码或代码隐藏文件访问HyperLink控件或ImageButton控件。

<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 个答案:

答案 0 :(得分:1)

通常,您需要在DataListItem对象上调用FindControl,以便在特定行上查找控件。在您的示例中,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 :(得分: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";
        }
    }

答案 2 :(得分:0)

这取决于。例如,如果您想在运行时更改标头,在其中一个对象绑定事件中,您将执行类似于此datalist标头的操作,对超链接执行findcontrol并使用该引用,执行此操作...

答案 3 :(得分:0)

是的,您可以使用Datalist Item Data bound

访问datalist中的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");
    }

}