dataGrid 的问题:
我想在datagrid 的某一列在客户端呈现出一个层次关系,如
1  书刊
2    化学书
3      初中化学
4      高中化学
5        高一化学
6        高二化学
7    物理书
8      高中物理        当然在数据库里有Name和Tier(层次)字段,但Name 不包含空格,不知在模板列里怎么写:
<asp:Label id="Label1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Name") %>' />

解决方案 »

  1.   

    你为什么不使用TreeView呢?哪个实现起来不是很方便吗?
      

  2.   

    问:你为什么不使用TreeView呢?哪个实现起来不是很方便吗?答:应为我每一行后面还有很多操作:增、删、排序、......
      

  3.   

    datagrid不能实现吧,你怎么绑定啊?
      

  4.   

    问:datagrid不能实现吧,你怎么绑定啊?
    答:可以实现,我就是看了别人做出来了才想这样做,因为程序里需要这样的设计.
      

  5.   

    我只看得见高手是这样调用了一个函数,但我不知道这个函数怎么写的<%#GetTitle(DataBinder.Eval(Container.DataItem,"Name").ToString(), (int)DataBinder.Eval(Container.DataItem,"Tier"), (int)DataBinder.Eval(Container.DataItem,"child"), (bool)DataBinder.Eval(Container.DataItem,"lastnode") )%>
      

  6.   

    那就象ASP似的 判断ID 和 ParentID 采用递归做
      

  7.   

    呵呵,我已经搞定了
    <asp:Label id="Label2" runat="server" Text='<%# getName(DataBinder.Eval(Container.DataItem, "Name"),cint(DataBinder.Eval(Container.DataItem, "tier"))) %>' />Protected Function getName(ByVal name As String, ByVal theTier As Integer) As String
                Dim theName As String            If theTier = 1 Then
                    theName = "<img border=0 src='./Images/folder.gif'>" & name
                Else
                    If theTier = 2 Then
                        theName = "<img border=0 src='./Images/spacer.gif' width=22><img border=0 src='./Images/folder.gif'>" & name
                    Else
                        If theTier = 3 Then
                            theName = "<img border=0 src='./Images/spacer.gif' width=22 hight=22><img border=0 src='./Images/spacer.gif' width=22><img border=0 src='./Images/folder.gif'>" & name
                        End If
                    End If
                End If            Return theName
            End Function
      

  8.   

    你还需在加一个关系表
    例如 
    主ID 01
    子ID 0101 0102
    主ID 02
    子ID 0201 0202 0203
    在用datagrid绑定时 需要对id进行字符串比对 可实现你想要的效果 慢慢体会吧