如何在ASP.NET中查找嵌套在div标签中的子控件

时间:2011-07-10 10:53:21

标签: asp.net

嗨我想找到一个图像按钮控件,它在一个嵌套在3个div标签中的表中实际上如果我使用下面的代码则返回null

for (int j = 1; j < 38; j++)
{
    string s = "ib_s" + j;
    ImageButton img = (ImageButton)FindControl(s.ToString());
    if (status[j] == "B")
    {
        img.ImageUrl = "~/graphics/Booked.jpg";
        img.Enabled = false;
    }
    else
    {
        img.ImageUrl = "~/graphics/Available.jpg";
    }
}

因为我想找到id为ib_s1,ib_s2 ....的图像按钮并更改图像网址。

我使用此页面的母版页,所以请帮助我。

3 个答案:

答案 0 :(得分:0)

  1. @Filip Ekberg评论时,请确保ImageButton具有runat="server"属性。

  2. 如果ImageButton位于内容网页上,则无法在后面的MasterPage代码中找到它们。

答案 1 :(得分:0)

使用runat =“server”属性标记外部div并在该div中搜索ImageButton:ImageButton img = containerDivId.FindControl(imageButtonServerID) as ImageButton;

顺便问一下,你能解释一下你的目标吗?你想在这个页面上实现什么?由于你有一个包含38个元素的表,我想在这里使用像Repeater这样的数据驱动控件会更好。

答案 2 :(得分:0)

我在这里使用了这段代码http://www.asp.net/master-pages/tutorials/control-id-naming-in-content-pages-cs

for (int j = 0; j < 37; j++)
    {
        string s = "ctl00$ContentPlaceHolder1$ib_s" + k;
        ImageButton img = (ImageButton)FindControl(s.ToString());
        if (status[j] == "B")
        {
            img.ImageUrl = "~/graphics/Booked.jpg";
            img.Enabled = false;
        }
        else
        {
            img.ImageUrl = "~/graphics/Available.jpg";
        }
        k++;
    }