私はRepeaterコントロールを使用しています.ImGalleryというIDを持つImageタグを1つ持っています。しかし、ファイルのコードでは、私はそれにアクセスすることはできません。イメージIDはC#のバックエンドに表示されません
protected void Page_Load(object sender, EventArgs e)
{
using (DBDataContext dt = new DBDataContext())
{
var frm = from i in dt.GalleryMasters
where i.CategoryId == 1
select i;
foreach (var item in frm)
{
Image img = (Image)rptImage.FindControl("imgGallery");
img.ImageUrl = item.Image;
((HtmlControl)(FindControl("ifrm"))).Attributes["src"] = item.Video;
}
}
}
aspx.cs
のaspx
<div class="col-md-4 col-sm-12">
<div class="col-md-2">
<asp:Repeater ID="rptImage" runat="server">
<ItemTemplate>
<asp:Image ID="imgGallery" runat="server" />
</ItemTemplate>
</asp:Repeater>
</div>
</div>
私はにFindControlを使用する場合は、varがnullです。これを行うことが可能であるべきであるあなたのビューで
rptImage.DataSource = frm.ToList();
rptImage.DataBind();
:
imgGalleryはそのようにリピータの一部ではありません。リピータ内のアイテムの一部です –
まだありません。どこにもアクセスしていません。 –
私はasp.netでデータバインディング、特にリピーターのItemDataBoundイベントを調べる必要があると思います。あなたのリピータにデータソースをバインドし、そのイベントでFindControl –