Проблема с вложенным 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>
<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"> <HeaderStyle BackColor="#df5015" Font-Bold="true" ForeColor="White" /> <RowStyle BackColor="#E1E1E1" /> <AlternatingRowStyle BackColor="White" /> <HeaderStyle BackColor="#df5015" Font-Bold="true" ForeColor="White" /> <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" HeaderStyle-HorizontalAlign="Left"></asp:BoundField> <asp:BoundField DataField="hatcheryname" HeaderText="Hatchery Name" HeaderStyle-HorizontalAlign="Left"> </asp:BoundField> <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"> <HeaderStyle BackColor="#df5015" Font-Bold="true" ForeColor="White" /> <RowStyle BackColor="#E1E1E1" /> <AlternatingRowStyle BackColor="White" /> <HeaderStyle BackColor="#df5015" Font-Bold="true" ForeColor="White" /> <Columns> <asp:BoundField DataField="hatchid" HeaderText="Region" HeaderStyle-HorizontalAlign="Left"> </asp:BoundField> <asp:BoundField DataField="name" HeaderText="Name" HeaderStyle-HorizontalAlign="Left"> </asp:BoundField> </Columns> </asp:GridView> </div> </td> </tr> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </div> </asp:Content>
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(); } }
Внутренний gridview не отображает никаких данных. Я пробовал и искал в google, но безрезультатно, результат тот же, я не получаю никаких ошибок.
thatraja
Во время отладки вы получаете данные в dtRegions?
Bhagavan Raju M
Я получаю данные, когда нажимаю на узел, который увеличивает размер, но показывает пустой
thatraja
какие столбцы присутствуют в dtRegions?
Bhagavan Raju M
@thatraja hatchid,имя
thatraja
Хорошо, просто удалите display: none; для всех строк & убедитесь, что все дочерние сетки загружаются?
Bhagavan Raju M
@thatraja Heart полностью благодарит свою работу.Я потратил уйму времени впустую .еще раз спасибо
thatraja
Ладно, закроем этот вопрос как решенный
Bhagavan Raju M
div.style.display = "inline" Я заменил на div.style.display = "block", это тоже работает. Могу я узнать где я ошибся
thatraja
Ответ уже есть в вашем сообщении. Всегда используйте 'block' вместо 'inline'.