使用datatable和datarow,datacolumn的变量读取dataview中内容,判别'姓名',然后向表格datagrid中写入。要了解datagrid的结构

解决方案 »

  1.   

    好办,在DATAGRIDITEM的数据绑定的事件里面做!
    zai在PAGE范围申请一个全局STRING[],大小等于DATAGRID的PAGESIZE,
    首先第一条ITEM事件绑定的时候,直接把第一条的名字写进去,
    然后就一条条的判断,如果在STRING[]有,就把这个ITEM的ITEM.CELL[0].TEXT = “”
    就OK了
      

  2.   

    bluejs(bluejs)的方法我觉得有点烦琐,如果很多的话,又要用for循环吧?
      

  3.   

    To: zhongkeruanjian(编程亮子) 谢谢你的回答,我想应该是用这种方法,但在哪个事件中生成呢?
    ItemCreated、 ItemDataBound 还是其他,能否举个例子
      

  4.   

    给你个例子吧!后台在连一下数据库就可以了。
    <HTML>
    <HEAD>
    <title>显示主次关系数据的例子</title>
    <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
    <meta content="C#" name="CODE_LANGUAGE">
    <meta content="JavaScript" name="vs_defaultClientScript">
    <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    </HEAD>
    <body ms_positioning="GridLayout">
    <form id="FrmDataGrid" method="post" runat="server">
    <P align="center">
    <asp:HyperLink id="HyperLink1" style="Z-INDEX: 101; LEFT: 64px; POSITION: absolute; TOP: 40px"
    runat="server" Width="88px" NavigateUrl="WebForm2.aspx">HyperLink</asp:HyperLink>
    <asp:HyperLink id="HyperLink2" style="Z-INDEX: 102; LEFT: 72px; POSITION: absolute; TOP: 80px"
    runat="server" NavigateUrl="WebForm3.aspx">HyperLink</asp:HyperLink><asp:datagrid id="DataGrid1" runat="server" Width="345px" Height="184px" BorderWidth="2px" AutoGenerateColumns="False"
    CellSpacing="0" CellPadding="0" ShowHeader="False" BorderColor="#0099FF" style="Z-INDEX: 103; LEFT: 240px; POSITION: absolute; TOP: 40px">
    <Columns>
    <asp:TemplateColumn>
    <ItemTemplate>
    <TABLE cellSpacing="0" cellPadding="0" width="100%" border="0">
    <TR>
    <TD bgColor="#3399ff"><B>订单号:
    <%# DataBinder.Eval(Container.DataItem, "OrderID") %>
    </B>
    </TD>
    </TR>
    <TR>
    <TD align="right">
    <asp:DataGrid id=DataGrid2 runat="server" AutoGenerateColumns="False" BorderColor="#33FF33" DataKeyField="OrderID" DataSource='<%# ((System.Data.DataRowView)Container.DataItem).CreateChildView("OrderRelation") %>'>
    <HeaderStyle Font-Bold="True" ForeColor="#CC0066" BackColor="#99ccff"></HeaderStyle>
    <Columns>
    <asp:BoundColumn Visible="False" DataField="OrderID" ReadOnly="True"></asp:BoundColumn>
    <asp:TemplateColumn HeaderText="产品名称">
    <HeaderStyle Width="300px"></HeaderStyle>
    <ItemTemplate>
    <%# DataBinder.Eval(Container.DataItem, "ProductName") %>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:BoundColumn DataField="UnitPrice" HeaderText="单价"></asp:BoundColumn>
    <asp:BoundColumn DataField="Quantity" HeaderText="数量">
    <HeaderStyle Width="75px"></HeaderStyle>
    </asp:BoundColumn>
    <asp:BoundColumn DataField="Discount" HeaderText="折扣">
    <HeaderStyle Width="70px"></HeaderStyle>
    </asp:BoundColumn>
    </Columns>
    </asp:DataGrid></TD>
    </TR>
    </TABLE>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    </asp:datagrid></P>
    </FONT></form>
    </body>
    </HTML>
      

  5.   

    我这几天天天都在用这种方法表达,只是我的是类别(相当于你的姓名),嘿绝对可行Dim comm As OleDbDataAdapter = New OleDbDataAdapter("select 类别, * from valuelist order by 类别,材料名称", conn)
            comm.Fill(dataset_show, "valuelist")
            Dim number As Single
            Dim number2 As Single = 1
            For number = 0 To dataset_show.Tables("valuelist").Rows.Count - 1
                If number <> 0 Then
                    If dataset_show.Tables("valuelist").Rows(number).Item("类别") = dataset_show.Tables("valuelist").Rows(number - number2).Item("类别") Then
                        dataset_show.Tables("valuelist").Rows(number).Item("类别") = ""
                        number2 = number2 + 1
                    Else
                        number2 = 1
                    End If
                End If
            Next
            show.DataSource = dataset_show.Tables("valuelist").DefaultView
            show.DataBind()
      

  6.   

    在ItemDataBound中判断,如果上一行的字段和本行的字段相等就将本行对应字段的值赋值为空值.例如:
    if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
    {
       if(e.Item.Index>0)
    {
         在这里完成你要完成的操作
    }
    }
      

  7.   

    大家帮忙解决啊,在ItemDataBound事件中应怎么进行判断?
      

  8.   

    if (e.Item.Index==-1 || e.Item.Index<1) return;  //没有记录或者记录为1则不进行判断
    if(e.Item.Text==DataGrid1.Items[e.Item.Index-1][0].ToString())
    {
        e.Item[0].Text="&nbsp;";//如果相同,则改写该单元格值
    }
      

  9.   

    oh.
    if (e.Item.Index==-1 || e.Item.Index<1) return;  //没有记录或者记录为1则不进行判断
    if(e.Item[0].Text==DataGrid1.Items[e.Item.Index-1][0].ToString())  //注意:Item[0].Text
    {
        e.Item[0].Text="&nbsp;";//如果相同,则改写该单元格值
    }
      

  10.   

    是要这种效果吗?
    http://expert.csdn.net/Expert/topic/2863/2863473.xml?temp=.3807184
      

  11.   

    http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=149E5DD7-3B32-461e-ACC6-51D1652E6746
      

  12.   

    Seeko0(阿 枫) 的方法最好
      

  13.   

    用了 Seeko0(阿 枫)的方法还是不行
      

  14.   

    在你查询出来后,在DataSet中判断,然后修改DataSet再绑定到DataGrid。
      

  15.   

    把DataSet导到 Table里面】
    导的时候判断一下。
      

  16.   

    sql语句中用order by [name]
    对DataReader做一个循环
    每次判断前面一个[name]是不是于这个相同,相同的不要输出,不相同的输出
      

  17.   

    用datareader自己做table吧,datareader每次读取一条记录,这样很好判断,然后添加到table中去
      

  18.   

    我是写字本写的code,可能有笔误,方法肯定正确