我的代码后面找不到asp.net转发器中的对象?

时间:2014-09-17 17:37:10

标签: c# asp.net attributes repeater

所以在我的asp.net应用程序中,我有一个转发器,但是在我的代码后面找不到转发器内的任何对象。这是一个例子:

标记

  <asp:Repeater ID="repeater_id" runat="server"
            DataSourceID="ExampleSource">
            <HeaderTemplate>
                <table id="table_id">
                    <thead>
                        <tr>
                            <th>Example</th>
                        </tr>
                    </thead>
                    <tbody>
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td>
                        <asp:Label runat="server" ID="MyLabel" />
                    </td>
                </tr>
            </ItemTemplate>

            <FooterTemplate>
                </tbody>
                </table>
            </FooterTemplate>
        </asp:Repeater>

在我的页面加载中,我正在尝试添加这样的属性:

C#

protected void Page_Load(object sender, EventArgs e)
        {
            MyLabel.Attributes.Add("Example","Example");
        }

但是,在我的aspx.cs页面中,“MyLabel”被突出显示为构建错误,其描述为“当前上下文中不存在名称'MyLabel'。”有人知道那可能是什么吗? 如果MyLabel在转发器之前或之后,它可以正常工作。

有人知道我的问题是什么吗?请尽可能清楚地解释,我是编码的新手。

编辑:在问题中错误输入我的编码。现在修好了。

1 个答案:

答案 0 :(得分:1)

您需要遍历repeater_id.Items并找到如下标签

foreach (RepeaterItem ri in repeater_id.Items)
{
    Label MyLabel = (Label)ri.FindControl("MyLabel");
    MyLabel.Attributes.Add("Example","Example");
}