想实现:  双击GridView某行,在这行的下一行处,插入一个空行,合并这一行,放入一个panel(panel里有一个表格)
    
像这样:a b c e f
            Panel
E G G G
D D D D D能实现么?



   

解决方案 »

  1.   

    建议你使用第三方控件 aspxGridView 这个估计可以实现你的要求
     这儿有说明文档  下载  
      

  2.   

    没有明白要完成怎么样的功能,个人感觉使用vs自带的GridView很难实现
      

  3.   

    从来不用GV...你用了gv,美工怎么跟你配合...
      

  4.   

    LZ如果会JS的话其实就是在你单击的那一行下面加上一行
    table对象中有个insertRow函数
      

  5.   

    是能插入一行,我想问插入一个合并行,然后行里是个panel行不行
      

  6.   

    用模板,或者配合,detailsview ,formview 控件吧,
      

  7.   

    控件ReportDesigner 可以帮你完成!
      

  8.   

    嵌套,内层比如套一个Repeater,里面放panel.
    用js控制,需要的时候显示。
    参考,这个js
    http://blog.csdn.net/greatverve/archive/2008/12/01/3419497.aspx
      

  9.   

    参考:
    前台<%@ Page Language="C#" AutoEventWireup="true" CodeFile="inlist.aspx.cs" Inherits="inlist" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
        <script type="text/javascript" src="js/my97/WdatePicker.js"></script>
        <link type="text/css" rel="stylesheet" href="images/base.css" />
        <script type="text/javascript">
            function f(oid){
                var d = document.getElementById(oid);
                if(d.className == "non")
                    d.className = "dis";
                else
                    d.className = "non";
            }
        </script>
        <style type="text/css">
            .title
            {
                font-size:20px;
            color:Red;
            font-weight:bold;
            }
            .dis{display:block;float:left;}
            .non{display:none;float:left;}
            input{width:60px;}
            body{margin:0;}
        </style>
    </head>
    <body>
        <form id="form1" runat="server">
        <div style="float:right;">
            起始时间<input name="starttime" id="starttime" type="text" runat="server" style="width: 150px" />
            <img onclick="WdatePicker({el:$dp.$('starttime')})" src="js/my97/skin/datePicker.gif" width="16" height="22" align="absmiddle" />
            结束时间<input name="endtime" id="endtime" type="text" runat="server" style="width: 150px"  />
            <img onclick="WdatePicker({el:$dp.$('endtime')})" src="js/my97/skin/datePicker.gif" width="16" height="22" align="absmiddle" />
            <asp:button ID="btnsearch" runat="server" Text="查找" OnClick="btnsearch_Click" />
        </div>
        <table cellpadding="5" cellspacing="1" width="100%" style="background:#ddd">
        <tr class="bold" style="background:#f6f6f6">
        <td align="center" width="10%">编号</td>
        <td align="center" width="10%">名称</td>
        <td align="center" width="10%">数量</td>
        <td align="center" width="10%">规格</td>
        <td align="center" width="10%">单价</td>
        <td align="center">备注</td>
        </tr>
        
        <asp:repeater ID="rptparent" runat="server" OnItemDataBound="rptparent_ItemDataBound">
                <itemtemplate>
                    <tr style="background-color:White;">
                    <td><%#Eval("sid") %></td>
                    <td colspan="4">列表
                    </td>
                    <td>
                        <asp:hiddenfield ID="hfoid" runat="server" Value='<%#Eval("sid") %>' />
                        <input type="button" value="明细" onclick='f(<%#Eval("sid") %>)' />
                        </td>
                    </tr>
                    <tr>
                    <td colspan="8">
                    <div style="background-color:Lime;" class="non" id='<%#Eval("sid") %>'>
                        <asp:repeater ID="rptchild" runat="server">
                            <itemtemplate>
                            <table border="0" width="100%" cellpadding="0" cellspacing="0">
                             <tr>
                             <td align="center" width="10%"><asp:label ID="lblid" runat="server" Text='<%#Eval("gid") %>'></asp:label></td>
                                <td align="center" width="10%"><asp:label ID="lblgname" runat="server" Text='<%#Eval("gname") %>'></asp:label></td>
                                <td align="center" width="10%"><asp:textbox ID="tbtempnum" runat="server" Text='<%#Eval("snum") %>'></asp:textbox></td>
                                <td align="center" width="10%"><%#Eval("gspec") %></td>
                                <td align="center" width="10%"><%#Eval("sprice") %></td>
                                <td align="center"><%#Eval("summary") %></td>
                             </tr>
                             </table>  
                            </itemtemplate>
                        </asp:repeater>
                    </div>
                    </td>
                    </tr>
                </itemtemplate>
                <AlternatingItemTemplate>
                    <tr style="background-color:White;">
                    <td><%#Eval("sid") %></td>
                    <td colspan="4">列表
                    </td>
                    <td>
                        <asp:hiddenfield ID="hfoid" runat="server" Value='<%#Eval("sid") %>' />
                        <input type="button" value="明细" onclick='f(<%#Eval("sid") %>)' />
                        </td>
                    </tr>
                    <tr>
                    <td colspan="8">
                    <div style="background-color:Lime;" class="non" id='<%#Eval("sid") %>'>
                        <asp:repeater ID="rptchild" runat="server">
                            <itemtemplate>
                            <table border="0" width="100%" cellpadding="0" cellspacing="0">
                             <tr>
                             <td align="center" width="10%"><asp:label ID="lblid" runat="server" Text='<%#Eval("gid") %>'></asp:label></td>
                                <td align="center" width="10%"><asp:label ID="lblgname" runat="server" Text='<%#Eval("gname") %>'></asp:label></td>
                                <td align="center" width="10%"><asp:textbox ID="tbtempnum" runat="server" Text='<%#Eval("snum") %>'></asp:textbox></td>
                                <td align="center" width="10%"><%#Eval("gspec") %></td>
                                <td align="center" width="10%"><%#Eval("sprice") %></td>
                                <td align="center"><%#Eval("summary") %></td>
                             </tr>
                             </table>  
                            </itemtemplate>
                        </asp:repeater>
                    </div>
                    </td>
                    </tr>
                </AlternatingItemTemplate>
            </asp:repeater>
        <tr>
            <td colspan="6">
            <asp:label ID="countlabel" runat="server" Text="Label"></asp:label>
            <asp:label ID="currentlabel" runat="server" Text="Label"></asp:label>
            <asp:hyperlink ID="firstlinkbutton" runat="server">首页</asp:hyperlink>
            <asp:hyperlink ID="prevlinkbutton" runat="server">前一页</asp:hyperlink>
            <asp:hyperlink ID="newlinkbutton" runat="server">后一页</asp:hyperlink>
            <asp:hyperlink ID="lastlinkbutton" runat="server">尾页</asp:hyperlink>
            </td>
        </tr>
        </table>
        </form>
    </body>
    </html>后台
    /// <summary>
        /// 绑定入库单
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void rptparent_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                DataRowView drv = e.Item.DataItem as DataRowView;
                Repeater child = e.Item.FindControl("rptchild") as Repeater;
                child.DataSource = storein.getbysid(int.Parse(drv["sid"].ToString()));
                child.DataBind();
            }
        }
      

  10.   

    你可以在FootTemplate里隐藏一个panel用js控制显示。
      

  11.   

    模板列+Panel、模板列+JS+Div+Table