内部网格不在嵌套网格视图中显示数据

时间:2013-08-21 19:46:31

标签: c# asp.net gridview

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">

<script type="text/javascript" language="javascript">

    function divexpandcollapse(divname) {
        var div = document.getElementById(divname);
        var img = document.getElementById('img' + divname);
        if (div.style.display == "none") {
            div.style.display = "inline";
            img.src = "../kjl_images/closed.gif";
        } else {
            div.style.display = "none";
            img.src = "../kjl_images/open.gif";
        }
    }
</script>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1"
runat="Server">
<div>
 <asp:GridView ID="gvParentGrid" runat="server" DataKeyNames="hatchid"
Width="300"AutoGenerateColumns="false"
OnRowDataBound="gvUserInfo_RowDataBound"  GridLines="None"
BorderStyle="Solid" BorderWidth="1px" BorderColor="#df5015">           
<Columns>
<asp:TemplateField ItemStyle-Width="20px">
<ItemTemplate>
<a href="JavaScript:divexpandcollapse('div<%# Eval("hatchid") %>');">
<img id="imgdiv<%# Eval("hatchid") %>" width="9px" border="0" 
 src="../kjl_images/closed.gif"  alt="" />
 </a>
 </ItemTemplate>
</asp:TemplateField>
 <asp:BoundField DataField="hatchid" HeaderText="Hatch ID" />
 <asp:BoundField DataField="hatcheryname" HeaderText="Hatchery Name" />                
  <asp:TemplateField>
    <ItemTemplate>
       <tr>
         <td colspan="100%">
 <div id="div<%# Eval("hatchid") %>" style="display: none;
position: relative; left:  15px;   overflow: auto">
asp:GridView ID="gvChildGrid" runat="server"
AutoGenerateColumns="false" BorderStyle="Double"   
BorderColor="#df5015" GridLines="None" Width="250px">                                        
<Columns>
 <asp:BoundField DataField="hatchid" HeaderText="Region"/>                                            
<asp:BoundField DataField="name" HeaderText="Name"/>
   </Columns>
     </asp:GridView>
        </div>
            </td>
               </tr>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
</div>

此处.CS代码

 protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        FillHatcheryGridDetails();

    }

}

public void FillHatcheryGridDetails()
{
    DataTable dthatcherygrid = new DataTable();
    dthatcherygrid = objhatcheryBAL.GetChickGridsdet();
    gvParentGrid.DataSource = dthatcherygrid;
    gvParentGrid.DataBind();
}

 protected void gvUserInfo_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        GridView GridView2 = (GridView)e.Row.FindControl("gvChildGrid");
        int hatchid = Convert.ToInt16(e.Row.Cells[1].Text);
        DataTable dtRegions = new DataTable();
        objhatcheryPL.hatchid = hatchid;
        dtRegions = objhatcheryBAL.GetHatchidDetaisl(objhatcheryPL);
        GridView2.DataSource = dtRegions;
        GridView2.DataBind();
    }
}

我尝试了在Google搜索的所有内容,我发布的代码来自谷歌。 我的问题是当我点击菜单按钮时内部网格显示为空白。 (即使我的代码也是如此)。任何人都可以说我哪里出错了。

2 个答案:

答案 0 :(得分:2)

更改了div.style.display =“inline”; to div.style.display =“block”;

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">

<script type="text/javascript" language="javascript">

function divexpandcollapse(divname) {
    var div = document.getElementById(divname);
    var img = document.getElementById('img' + divname);
    if (div.style.display == "none") {
        div.style.display = "block";
        img.src = "../kjl_images/closed.gif";
    } else {
        div.style.display = "none";
        img.src = "../kjl_images/open.gif";
    }
}
</script>

答案 1 :(得分:0)

我必须从div.style.display = "inline";更改为div.style.display = "inline-table"; 因为div没有使用divexpandcollapse函数

保持宽度值