Datagrid 在客户端有定义,但是数据列是在后台生成的,要怎样在客户端(没有提交页面的情况下)获取到datagrid的列数呢?

解决方案 »

  1.   

    方法N多~1.
    使用一个隐藏域从服务器端存储 DataGrid 的列数// .aspx
    <input type="fldGridColumnCount" runate=server /><script type=text/javascript>
    function displayGridColumnCount()
    {
       alert(document.getElementById("fldGridColumnCount").value);
    }
    </script>// .aspx.cs
    int actualCount = 0;
    actualCount = MyDataGrid.Columns.Count;
    // 当有隐藏列的时候,你可能需要特殊处理,看你的需求了,
    // 隐藏列是不会发送到客户端呈现的
    // actualCount = MyDataGrid.Columns.COunt - yourHiddenColumnsCount;
    fldGridColumnCount.Value = actualCount.ToString();Hope helpful!
      

  2.   

    DataGrid生成为html后为一个Table假如 DataGrid 的ID为 dg列数: document.getElementById("dg").cells.length
      

  3.   

    行数: document.getElementById("dg").rows.length
      

  4.   

    <table id='dg'>
    <tr><td>123</td><td>123</td><td>123</td><td>123</td><td>123</td><td>123</td><td>123</td><td>123</td><td>123</td><td>123</td><td>123</td><td>123</td></tr>
    </table><script language=javascript>
    alert(document.getElementById("dg").cells.length);
    </script>
      

  5.   

    上述方法全部试验过了,还是不行,提示缺少对象,脚本发生错误。
    ______________________________________________________________
    可能是你自己的js函数没有写对,因为以上写法应该没有问题的。提示:datagrid在客户端其实是个table对象,所以用table的操作是没有问题的,关于客户端的对象及其属性方法事件等你可以查看DHTML手册,或者MSDN.