如何在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>
答案 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");
}
}