各位做b/s的高手,请问谁知道怎么写datagrid的三层嵌套????????请给代码或连接也行!

解决方案 »

  1.   

    三层嵌套从一层开始,然后2层,然后3层
    比如
    private void Page_Load(object sender, System.EventArgs e)
    {
    DataGrid1.DataSource = ....;
    DataGrid1.ItemCreated += new DataGridItemEventHandler(DataGrid1_ItemCreated);
    DataGrid1.DataBind();
    }private void PowerDataGrid1_ItemCreated(object sender, DataGridItemEventArgs e)
        {
          DataGrid DataGrid2 = (DataGrid)e.Item.FindControl("DataGrid2");
          DataGrid2.DataSource = "";
          DataGrid2.ItemCreated += new DataGridItemEventHandler(DataGrid2_ItemCreated);
          DataGrid2.DataBind();
        }    private void DataGrid2_ItemCreated(object sender, DataGridItemEventArgs e)
        {
          DataGrid DataGrid3 = (DataGrid)e.Item.FindControl("DataGrid3");
          DataGrid3.DataSource = "";
          DataGrid3.DataBind();
        }
      

  2.   

    srz007(呵呵)
    大哥那前台哪???
      

  3.   

    上面的代码有点误
    private void PowerDataGrid1_ItemCreated(object sender, DataGridItemEventArgs e)应该是private void DataGrid1_ItemCreated(object sender, DataGridItemEventArgs e)前台很简单啊,你从工具箱里拽三个DataGrid出来,分别叫DataGrid1、DataGrid2、DataGrid3
    把3放在2的一个模板列里,然后再一起放在1的一个模板列里就可以用了
      

  4.   

    数据基础层:public static DataSet ExecuteDataset(CommandType cmdType, string cmdText, params SqlParameter[] cmdParms)
    {

                SqlCommand cmd = new SqlCommand();
    SqlConnection conn = new SqlConnection(connString);
    try
    {
    PrepareCommand(cmd,conn,cmdType,cmdText,cmdParms);
        

    SqlDataAdapter da = new SqlDataAdapter(cmd);

    DataSet ds = new DataSet(); da.Fill(ds);

    cmd.Parameters.Clear(); return ds;
    }
    catch(Exception e)
    {
    throw new Exception(e.Message);
    }
    finally
    {
    if(conn != null)
      conn.Close();
    }

    }数据层:public DataSet GetQyNewsFormQyid(string qyid)
    {
    SqlParameter parm = new SqlParameter(PARM_QY_ID, SqlDbType.VarChar,50);

    parm.Value=qyid;

    DataSet ds=SQL_DataAccess.ExecuteDataset(CommandType.Text,SQl_SEL_QYNEWS_BY_QYID,parm);
    return ds;

    }逻辑事物层:public DataSet LoadNewsFromQyId(string qyid)
    {
    NewsD news=new NewsD();
    DataSet ds=(DataSet)news.GetQyNewsFormQyid(qyid);
    return ds;
    }表示层:private void BindGrid()
    {
    NewsB nb=new NewsB();
    DataSet st=nb.LoadNewsFromQyId(Session["frhm"].ToString());
    DataGrid1.DataSource=st;
    DataGrid1.DataBind();
    }
      

  5.   

    <asp:datagrid id="Datagrid1" runat="server" Width="100%" AllowSorting="True" AllowPaging="True"
    AutoGenerateColumns="False" CellPadding="1" BackColor="White" BorderStyle="None" HorizontalAlign="Center"
    BorderWidth="1px" BorderColor="#73B3E1">
    <SelectedItemStyle ForeColor="Black" BackColor="#EFEFEF"></SelectedItemStyle>
    <EditItemStyle Wrap="False"></EditItemStyle>
    <AlternatingItemStyle Wrap="False" BackColor="#F7FBFF"></AlternatingItemStyle>
    <ItemStyle Font-Size="11pt" Wrap="False" ForeColor="Black" BackColor="White"></ItemStyle>
    <HeaderStyle Font-Bold="True" HorizontalAlign="Center" ForeColor="White" BackColor="#2086D1"></HeaderStyle>
    <FooterStyle HorizontalAlign="Right"></FooterStyle>
    <Columns>
    <asp:BoundColumn DataField="Number" SortExpression="Number" HeaderText="序号">
    <HeaderStyle Width="30px"></HeaderStyle>
    <ItemStyle VerticalAlign="Top"></ItemStyle>
    </asp:BoundColumn>
    <asp:BoundColumn DataField="ItemCode" SortExpression="ItemCode" HeaderText="项目编号">
    <HeaderStyle Width="80px"></HeaderStyle>
    <ItemStyle HorizontalAlign="Center" VerticalAlign="Top"></ItemStyle>
    </asp:BoundColumn>
    <asp:TemplateColumn SortExpression="ItemName" HeaderText="新合并的项目名称">
    <ItemStyle Font-Underline="True" ForeColor="Blue" VerticalAlign="Top"></ItemStyle>
    <ItemTemplate>
    <%# Selector(DataBinder.Eval(Container.DataItem, "ItemName"),DataBinder.Eval(Container.DataItem, "Class5ID"),DataBinder.Eval(Container.DataItem,"ItemID").ToString(),DataBinder.Eval(Container.DataItem, "ItemClassID"))%>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:BoundColumn DataField="ItemClassName" SortExpression="ItemClassName" HeaderText="项目类型">
    <HeaderStyle Width="55px"></HeaderStyle>
    <ItemStyle VerticalAlign="Top"></ItemStyle>
    </asp:BoundColumn>
    <asp:BoundColumn DataField="SumMoney" SortExpression="SumMoney" HeaderText="计划费用" DataFormatString="{0:F2}">
    <HeaderStyle Width="60px"></HeaderStyle>
    <ItemStyle HorizontalAlign="Right" VerticalAlign="Top"></ItemStyle>
    </asp:BoundColumn>
    <asp:TemplateColumn HeaderText="被合并的项目列表">
    <ItemStyle VerticalAlign="Top"></ItemStyle>
    <ItemTemplate>
    <asp:DataGrid GridLines="Horizontal" ShowHeader="True" CellPadding="2" BorderWidth="0px" AutoGenerateColumns="False" Runat="server" Font-Size="X-Small" Width="100%" DataSource='<%# GetOrdersDataSource((int)DataBinder.Eval(Container.DataItem, "ItemID")) %>' ID="Datagrid2" NAME="Datagrid1">
    <SelectedItemStyle ForeColor="Black" BackColor="#EFEFEF"></SelectedItemStyle>
    <EditItemStyle Wrap="False"></EditItemStyle>
    <AlternatingItemStyle Wrap="False" BackColor="#F7FBFF"></AlternatingItemStyle>
    <ItemStyle Font-Size="11pt" Wrap="False" ForeColor="Black" BackColor="White"></ItemStyle>
    <HeaderStyle Font-Bold="True" HorizontalAlign="Left" ForeColor="White" BackColor="#2086D1"></HeaderStyle>
    <FooterStyle HorizontalAlign="Right"></FooterStyle>
    <Columns>
    <asp:TemplateColumn SortExpression="ItemName" HeaderText="项目名称">
    <ItemStyle Font-Underline="True" ForeColor="Blue" VerticalAlign="Top"></ItemStyle>
    <ItemTemplate>
    <table width="100%" border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td width="15"><b>·</b></td>
    <td>
    <%# Selector(DataBinder.Eval(Container.DataItem, "ItemName"),DataBinder.Eval(Container.DataItem, "Class5ID"),DataBinder.Eval(Container.DataItem,"ItemID_Source").ToString(),DataBinder.Eval(Container.DataItem, "ItemClassID"))%>
    </td>
    </tr>
    </table>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:BoundColumn DataField="SumMoney" SortExpression="SumMoney" HeaderText="计划费用" DataFormatString="{0:F2}">
    <HeaderStyle Width="60px"></HeaderStyle>
    <ItemStyle HorizontalAlign="Right" VerticalAlign="Top"></ItemStyle>
    </asp:BoundColumn>
    </Columns>
    </asp:DataGrid>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    <PagerStyle HorizontalAlign="Right" ForeColor="Black" BackColor="#F2F2F2" Mode="NumericPages"></PagerStyle>
    </asp:datagrid>//******************************************************************以上是前台的二层套,第三层类似,不再提示...........................
      

  6.   

    动态控件或动态事件的可以找到资料
    如果查找控件, 也可以找到资料.一般查什么资料?msdn吗?
      

  7.   

    public static DataSet ExecuteDataset(CommandType cmdType, string cmdText, params SqlParameter[] cmdParms)
    {            SqlCommand cmd = new SqlCommand();
    SqlConnection conn = new SqlConnection(connString);
    try
    {
    PrepareCommand(cmd,conn,cmdType,cmdText,cmdParms);
        SqlDataAdapter da = new SqlDataAdapter(cmd);DataSet ds = new DataSet();da.Fill(ds);cmd.Parameters.Clear();return ds;
    }
    catch(Exception e)
    {
    throw new Exception(e.Message);
    }
    finally
    {
    if(conn != null)
      conn.Close();
    }}