GridView,是ASP.NET的一个显示数据的表格控件。我想写一个JS的,先问一个很直接的问题吧。这个类,我可以传递一个参数,列名数组=["姓名","年龄",……],用来控制显示SQL查询出来的数据集里的哪些列。但有些列,我想显示的时候定制一下,原来GridView里可以这么写<%# MyFun(Eval("H"), Eval("HPrecision"))%>MyFun是一个后台的C#代码,H、HPrecision是两个列的名称,功能是通过MyFun,把H、HPrecision这两个列转换为一个字符串,显示在这里,这样就达到了定制某些列的功能。
可是我写一个JavaScript代码,如何来控制这些呢?

解决方案 »

  1.   

    哦,我的意思是,写一个通用一点的类,将来不管什么样的数据集,只要通过一些参数定制,或另外添加的函数来定制列,就行了。不必每种数据集都写一个GridView类。
      

  2.   

    html 只有 table 没有 GridView 服务器控件,生成的也是html.自己写 html就可以
      

  3.   

    我就是举个例子,像GridView那样,就是写一个JavaScript类而已
      

  4.   

    网上有些这种grid插件的.你既然想自己写,那无非是两种情况了
    1:在现有DOM下进行效果渲染。定义一个基本的DOM结构去显示基本数据,然后通过你的插件中的其他相关定义,对DOM进行一些自定义的操作,使它变成你想要的界面效果。这种方式就是可以将数据与视觉效果在一定程度进行分离,获取数据和显示数据由后台语言去完成。
    2:全部使用字面量传参的方式,由插件完成DOM的创建,事件的绑定等等。这种方式就是将数据的获取与显示也放到插件中去了,那肯定是要使用ajax方式进行异步的数据获取了PS:一个完善的Grid插件,要做的事情有很多。上面只是说的大致的实现思路。
      

  5.   

    楼主的想法,有些部分有问题.
    "用来控制显示SQL查询出来的数据集里的哪些列。"
    这个不是客户端的JS应该做的事,而是后台的事,不需要显示你传回来干嘛?不加过滤的传回整个记录集,经常会造成性能上的极大浪费,一旦用户数量较多,你立即就崩溃了.
    前台只负责显示和必要的交互.数据的事由后台负责好.
      

  6.   

    比如我搜出来2列,H、H的精度,我显示的时候只要显示H啊,H的精度作为输出H时候的参数
      

  7.   

    并不是所有的查询,都能用SQL语句查出来的,我当年就这个问题问过SQL区的高人,那里的高人建议前台处理查出来的数据,而非所有的显示都由SQL语句来搞定。
      

  8.   

    我现在就想从最基本的一个问题开始解决,上面提到这个问题,C++里可以用虚函数、回调函数等实现,JavaScript不知道怎么弄。
      

  9.   

    还是不对.
    "H、H的精度,我显示的时候只要显示H啊,H的精度作为输出H时候的参数"
    这还是你后台该干的事情,按照精度格式化好之后转换成字串输出到前台.到了前台它还是数字.
    你说的SQL不能完成所有数据处理,是对的,但和这个问题无关.
    我说的就是你在SQL出来之后,后台再进行处理,处理妥了再还回前台.你怎么一下子把后台也越过,直接说到SQL去了.你的后台是干嘛的呢?
      

  10.   

    我说的是你部分说法不对.总的来说,自己做个前台的GRID也可以,可以简化一下结构,提高效率,也能更好地进行风格个性化.
      

  11.   

    <script type="text/javascript">
        var gvItem = function(colPar, fun) {
            this.colPar = colPar;
            this.fun = fun;
        }
        var gvitem = new gvItem(["c", "d"], function(myParArr) {        return myParArr[0] + "|" + myParArr[1];    });
        var arr = ["a", "b", gvitem];
        function arrTest(myArr) {
            var strs = [];
            for(var i in myArr)
            {
                if (typeof myArr[i] == 'string') {
                    strs.push(myArr[i]);
                } else {
                strs.push(myArr[i].fun(myArr[i].colPar));
                
                }
            }
            return strs.join(", ");
        }
        function Button1_onclick() {
            alert(arrTest(arr));
        }</script>
      

  12.   

    前台后台什么的,这里不是重点,而是我想学习JavaScript做个类,除了例子里边的小猫小狗之外的,有点实际应用的类。
    而11楼正是我想要的方案。