我将一个List集合手动绑定到Repeater控件中,控件的样式什么的都是自己写的但是在生成页面的时候,我想判断下对象内容是什么比如在小脚本(<%)中加入运算Eval只是用来讲数据绑定到页面,无法满足我的需求,请问绑定的值,还能不能加入小脚本中运算了?有没有其他方法的?

解决方案 »

  1.   

    似乎没特别明白您的需求
    但是我想,既然您已经决定绑定数据了,那么您了list应该是计算好了的
    如果你需要其他的,可以用js来控制
      

  2.   


    protected string Operation(string data)
        { 
            //计算。。计算。。
        }
    可以在后台加一个方法。。前途绑定的时候:
    <asp:Repeater>
                    <ItemTemplate>
                        <%# this.Operation(Eval("data").ToString()) %>
                    </ItemTemplate>
                </asp:Repeater>
    可以把计算操作放在后台中。。前台不要做太复杂的操作。。
      

  3.   

    请问我再加载的时候绑定的数据源
    ASP页面要怎样取出list集合中得数据加入运算?
    <%
      if(我需要从List集合取出的数据==0){
        ...
      }
    %>请问红字部分 应该怎么取值?
      

  4.   


    判断用3目运算 <%# Eval("data").ToString() == "aa" ? Eval("data").ToString() : "bb" %>
      

  5.   

    其实我主要是想做这样一个功能,与论坛不一样的是评论是跟着发言下面显示,也许是1条,也许是多条数据库方面我已经查出了3个发言,和这3个发言对应的回复
    其中有一个对应主贴的ID,如果这个ID是主贴ID就是指他是跟在那个主贴后面
    全部在一个List集合中,我呈现的时候要判断下那个ID是那个贴的跟帖其实跟QQ空间那个心情评论一样,但是我不知道一般都是怎么个思路,我这个思路不是很可行吧?如果用ajax查的话倒是会,但是我希望能够尽量少的链接数据库,只求更好吧
    我刚工作没多久,在一家小公司,也没人带我,我只能自己摸索
      

  6.   

    用ajax也是要查询数据库的,否则你的回复只是存储在XML或别的地方,他肯定要有个寄存的东西,这回复应该跟你的数据库表的设计有关,点击回复。用JS来控制和隐藏,你这样的回复,当于留言。你想想!
       用JS来控制回复窗口的显示和隐藏。然后在进行操作回复!   能听懂这个思路么?
      

  7.   

    可以的<%# 写在这个中间就行了 %>
      

  8.   

    public bool Getstate(string state)
    {
     if(state=="1")
    {return true;
    }else{
    return false;
     }
    }
    前台:
    <%#Getstate(Eval("data").ToString())%>
      

  9.   

    这个我懂,你的这个方法,光这个功能要查至少两次吧~我查出来的数据是这样的结构其中CID是ID的跟帖~
    我想把这个呈现到ASP页面,请问应该是什么思路呀?
      

  10.   

    楼主看看4楼的方法吧,那个.aspx.cs文件里的函数,你可以接收任意个参数,只要你想至于返回值,我们一般是返回string类型,这样,就算你想返回拼凑好的html代码和js代码都木问题
      

  11.   

    我主要是根据状态生成内容,你这个最后返回打印的是 true 或是 flase 我不想用这种方式....我觉得展示一次内容这样太麻烦了前台:
      

  12.   

    //我说过了,你只要负责把所有需要的数据作多个参数传进去就可以了,不明白你为什么要两次查询数据库
    //你想的话,把数据源里的所有列字段的值当参数传进去,都没问题,对了,这里我更正一下4楼的,你把那个参数的数据类型换成object,别用string,因为有的字段可能没值
    //如果没值,使用DBNull.Value来判断,而不是null//至于你说的要用什么JS来计算,可以的//方法就是你在页面的HTML源码里定义好一个计算用的JS函数
    比如 Funtion MyJs(id)
    {
      ..............
    }
    然后,你在那个后台绑定的函数里,直接调用这个前台的JS函数:
    protected string Operation(objct id)
        { 
            //这里你可以做任何你想做的事
             string result="";
            result="<script type=\"javaScrtipt/Text\">";
            result+="MyJs("+id.ToString()+");//这里你可以调用前台写好的JS函数,当然,如果你想,你也可以直接在这里执行一段JS代码,只要你确保它们都放在<script></script>块中,因为你可以想象,实际上C#代码在服务器上只负责把生成的内容输出到页面,至于是什么JS,那就是要传到客户端的IE浏览器上才识别的
             result+="</script>";
        }
      

  13.   

    既要显示发言又要在下面显示回复~我觉得LZ可以用两个repeater嵌套要简单一些