首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >中继器ItemDataBound NullReferenceException

中继器ItemDataBound NullReferenceException
EN

Stack Overflow用户
提问于 2018-09-11 20:48:47
回答 1查看 284关注 0票数 0

当我的数据中有一个空值时,我将得到一个NullReferenceException。该数据中将有许多空值和空值,我想突出显示它们。col2是td的id。

代码语言:javascript
复制
<td id="col2"><asp:Label ID="ESubject" Text='<%# (Eval("EventSubject") == null) ? "null" : Eval("EventSubject") %>' runat="server" /></td>
代码语言:javascript
复制
protected void myRepeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    { 
            var varSubject = e.Item.FindControl("ESubject");
            var adjSubject = varSubject.ToString();

            HtmlTableCell td = (HtmlTableCell)e.Item.FindControl("col2");

            if (adjSubject == "null")
            {
                td.BgColor = "yellow";
            }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-11 21:19:57

如果要从代码背后访问常规html控件,则需要添加runat="server"

代码语言:javascript
复制
<td id="col2" runat="server">
   ...
</td>

如果您想要找到子控件,我们使用.FindControl

由于HtmlTableCell是label控件的直接父控件,所以需要使用.Parent

代码语言:javascript
复制
protected void myRepeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        var varSubject = e.Item.FindControl("ESubject");
        var adjSubject = varSubject.Parent as HtmlTableCell;
        if (adjSubject != null)
        {
            adjSubject.BgColor = "yellow";
        }
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52284018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档