-1

我有一个asp中继器控件,我从页面加载绑定数据源,如果有数据,一切正常,但是当我没有要显示的数据时,我想访问页脚模板以显示标签:“无可用数据”

我尝试使用此代码:

Label lblTotal = (Label)repeaterAccessFooterControl.Controls[repeaterAccessFooterControl.Controls.Count - 1].FindControl("lblTotal");

但 repeaterAccessFooterControl.Controls.Count 总是 = 0 ..

我如何从页面加载访问页脚控件,我认为,在页面加载中,转发器尚未正确呈现..所以它等于 0

我怎样才能做到这一点?

4

2 回答 2

0

确保当您没有要显示的数据时,将空集合绑定到转发器而不是null值。然后您可以使用 进行控制FindControlRecursive,如下所示:

var lblTotal = FindControlRecursive(<<your_repater_control>>, "lblTotal") as Label;

这是定义FindControlRecursive

public Control FindControlRecursive(Control root, string id)
        {
            return root.ID == id ? root : (from Control c in root.Controls select FindControlRecursive(c, id)).FirstOrDefault(t => t != null);
        }

问候,乌罗斯

于 2013-11-02T10:31:35.860 回答
0

为什么不切换到 ListView,然后可以使用EmptyDataTemplate呢?

于 2013-11-02T12:03:04.507 回答