asp:Repeater 中的图像属性通过 FindControl 访问

本文关键字:FindControl 访问 属性 图像 Repeater asp | 更新日期: 2023-09-27 18:24:37

我有一个asp:repeater,在中继器中我有一个asp:image。现在我想通过查找控件访问图像并将图像放入其中。这是我到目前为止的代码。我试过但没有成功。我还在网格视图中的另一个地方尝试了此代码,它工作正常。

    clsFileUpload fileUpload = new clsFileUpload();
    dataTable = fileUpload.GetDownloadsFiles(ClsSystemUsers.ProgramId, ClsSystemUsers.SemesterN, 3);
    for (int i = 0; i < dataTable.Rows.Count; i++)
    {
        //rptLec is my repeater id...
        rptLec.DataSource = dataTable;
        rptLec.DataBind();
        string label = dt.Rows[i]["Url"].ToString();
        Image = (Image)rptLec.FindControl("Image_Video");
        if (label != null)
        {
            string turl = label;
            GetYouTubeImage(turl);//function for getting image from youtube
        }
    } 

asp:Repeater 中的图像属性通过 FindControl 访问

你必须使用(如果你用了<ItemTemplate>)

rptLec.Items[0].FindControl("Image_Video");

您还可以将datatable绑定到循环之外for repeater

因此,请尝试像这样更改代码:

clsFileUpload fileUpload = new clsFileUpload();
dataTable = fileUpload.GetDownloadsFiles(ClsSystemUsers.ProgramId, ClsSystemUsers.SemesterN, 3);
//rptLec is my repeater id...
rptLec.DataSource = dataTable;
rptLec.DataBind();
for (int i = 0; i < dataTable.Rows.Count; i++)
{
        string label = dt.Rows[i]["Url"].ToString();
        Image = (Image)rptLec.Items[0].FindControl("Image_Video");      
        if (label != null)
        {
            string turl = label;
            GetYouTubeImage(turl);//function for getting image from youtube
        }
}