在repeater里有这样的绑定
<td><%#DataBinder.Eval(Container.DataItem, "PaperName")%></td>
<td><%#DataBinder.Eval(Container.DataItem, "userid")%></td>
<td><%#DataBinder.Eval(Container.DataItem, "CreateType")%></td>我想根据CreateType所获得的不同的值显示不同的内容,比如CreateType为0显示xxxx,CreateType为1显示yyyyy

解决方案 »

  1.   

    <%……%>里面是可以写if语句的。
      

  2.   

    不错,可以用if语句的,比如:
    if DataBinder.Eval(Container.DataItem, "PaperName").ToString().Length > 50 ? DataBinder.Eval(Container.DataItem, "PaperName").ToString().Substring(0,50) : DataBinder.Eval(Container.DataItem, "PaperName").ToString()
      

  3.   

    上面这段就是截取定义的语句了,一般这后面还会加点东西.
    DataBinder.Eval(Container.DataItem, "PaperName").ToString().Substring(0,50) + "..." :
      

  4.   

    也可以在ItemDataBind事件里面去做啊
      

  5.   

    可以写一个函数,设置为public  这样就可以调用拉!<td><%# function(DataBinder.Eval(Container.DataItem, "PaperName"))%></td>
      

  6.   

    <td><%#DataBinder.Eval(Container.DataItem, "PaperName")%></td>
    <td><%#DataBinder.Eval(Container.DataItem, "userid")%></td>
    <td>
    <%
    switch (DataBinder.Eval(Container.DataItem, "CreateType"))
    {
    case 0:
    Response.write("xxxxx");
    break;
    }
    %></td>
    代码修改成了这个样子,但是报错:
    说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 
    编译器错误信息: CS0246: 找不到类型或命名空间名称“Container”(是否缺少 using 指令或程序集引用?)
      

  7.   

    晕哦代码不是写在这里面的
    我觉得你还是写在绑定后处理的事件里比较好:
    DataItemBound这个事件里.如下:
    if (e.Items.Cells[1].Text.Trim().Equal("0"))
    {
        e.Items.Cells[1].Text = "xxxx";
    }
    if (e.Items.Cells[1].Text.Trim().Equal("1"))
    {
        e.Items.Cells[1].Text = "yyyy";
    }
    Cells[1]指的是列,如果是第一列为0,如果是第二列是为1,以此类推.