容器不存在

时间:2014-01-23 18:30:50

标签: html asp.net repeater flags

我在我的项目中使用了转发器..所以当用户添加新文档时,我想在gmail帐户中看到新电子邮件时突出显示与gmail相同的新添加文档,然后电子邮件以粗体显示,然后我们就能看到有人发送电子邮件当我添加新记录然后如何突出显示或以其他方式识别时我想要的相同? 所以有人建议我使用标志,然后当我尝试使用标志时,我首先在表中添加列如此 pic

然后当我在转发器中使用这样的时候

 <tr
   style='<%if(DataBinder.Eval(Container.DataItem, "datatype")== 1) 
    { %> background-color: yellow;  <% }
     else { %> background-color: white;
     <%} %>'>

它显示我的错误

Compilation Error 
 Description: An error occurred during the 
compilation of a resource required to service this request. Please 
review the following specific error details and modify your source code 
appropriately.
 Compiler Error Message: CS0103: The name 'Container' does not exist in the current context
Source Error                    
                      Line 124:<%--                            <tr>--%>
Line 125:                            <tr
Line 126:                                  style='<% if (DataBinder.Eval(Container.DataItem, "datatype")== 1) { %> background-color: yellow;  <% }

任何人请帮助问题在哪里,我如何解决这个问题,还是有另一种解决方法? THANKU

2 个答案:

答案 0 :(得分:0)

您正在做的是执行在ASP.NET Webforms中不起作用的内联代码。

您可以为常规行和突出显示的行创建css类,并相应地应用该类。我会创建一个单独的函数,它将“数据类型”作为参数返回基于值的css类名。然后从.aspx调用该函数来设置tr类属性。

显示在this article

答案 1 :(得分:0)

试试这个:

<强> HTML

<tr style='<%# getBackground(Eval("FieldName")) %>'>

其中FieldName是来自DataSource的字段名称。然后在后面的代码中创建一个公共函数。我假设你使用的是c#,因为你没有标记任何语言:

<强> C#

public string getBackground(Object fieldName)
{
    if ((bool)fieldName)
    {
        return "background-color: yellow;";
    }
    else
    {
        return "background-color: white;";
    }
}

这假设该字段是布尔值,但您可以转换为任何基本或自定义数据类型。