0

データリスト内の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

4 に答える 4

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";
        }
    }
于 2012-04-20T06:56:35.430 に答える
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
于 2009-09-21T19:44:50.353 に答える
0

場合によります。たとえば、実行時にヘッダーを変更したい場合、オブジェクト バインド イベントの 1 つで、このデータリスト ヘッダーに対して次のようなことを行い、ハイパーリンクで findcontrol を実行し、その参照を使用して、これを実行します...

于 2009-09-21T16:03:44.607 に答える
0

はい、バインドされた Datalist Item Data を使用して、データリスト内の 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");
    }

}
于 2013-03-08T07:02:32.867 に答える