Click here to Skip to main content
15,886,110 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
I have one Gridview in which Link button is there on click of linkbutton it should open the nested gridview for that particular row with edititem Template in it and after entering the details i should be able to save the details in database.
Here is my code.But on Click of linkbutton the nested gridview is not getting binded


Aspx page coding




ASP.NET
<asp:GridView ID="grdOrderDetails" runat="server" OnRowCommand="grdOrderDetails_RowCommand" OnRowDataBound="grdOrderDetails_RowDataBound"
             OnPageIndexChanging="grdOrderDetails_PageIndexChanging" AllowPaging="true" AutoGenerateColumns="false" DataKeyNames="OrderId">
    <Columns>
        <asp:TemplateField HeaderText="OrderID" Visible="false">
            <ItemTemplate>
                <asp:Label ID="lblOrderId" runat="server" Text='<%# Eval("OrderId") %>'></asp:Label>
                <asp:Panel ID="Panel1" runat="server" >
                    <asp:GridView ID="grdDispatch" runat="server" AutoGenerateColumns="false" AllowPaging="true" OnRowEditing="grdDispatch_Editing">
                        <Columns>
                        <asp:BoundField DataField="OrderId" HeaderText="Order Id" />
                            <asp:BoundField DataField="ClientName" HeaderText="Client Name" />
                            <asp:BoundField DataField="LocName" HeaderText="Location Name" />
                            <asp:BoundField DataField="Quantity" HeaderText="Quantity" />
                            <asp:TemplateField HeaderText="Dispatch Qty">
                               <EditItemTemplate>
                                    <asp:TextBox ID="txtDispatchQty" runat="server" OnTextChanged="txtDispatch_TextChanged"></asp:TextBox>
                               </EditItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Balance Qty">
                                <EditItemTemplate>
                                    <asp:Label ID="txtBalanceQty" runat="server"></asp:Label>
                                </EditItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Dispatch Date">
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtDispatchDate" runat="server" CssClass="datePickerTextBox"></asp:TextBox>
                                </EditItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Delivery Type">
                                <EditItemTemplate>
                                    <asp:DropDownList ID="ddlDeliveryType" runat="server" OnSelectedIndexChanged="ddlDeliveryType_SelectedIndexChanged">
                                        <asp:ListItem Text="--Select--" Value="0"></asp:ListItem>
                                        <asp:ListItem Text="Hand Delivery" Value="1"></asp:ListItem>
                                        <asp:ListItem Text="Courier" Value="2"></asp:ListItem>
                                    </asp:DropDownList>
                                </EditItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Courier Name">
                                <EditItemTemplate>
                                    <asp:DropDownList ID="ddlCourier" runat="server"></asp:DropDownList>
                                </EditItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Courier Receipt No.">
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtCourierNo" runat="server"></asp:TextBox>
                                </EditItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Dipatch">
                                <ItemTemplate>
                                    <asp:Button ID="btnUpdate" runat="server" Text="Dispatch" OnClick="btnUpdate_Click" />
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Cancel">
                                <ItemTemplate>
                                    <asp:Button ID="btnCancel" runat="server" Text="Cancel" OnClick="btnCancelUpt_Click" />
                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>
                    </asp:GridView>
                </asp:Panel>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Sr No.">
            <ItemTemplate>
                <asp:Label ID="lblSrNo" runat="server"><%# Container.DataItemIndex + 1 %></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="ClientName" HeaderText="Client Name" />
        <asp:BoundField DataField="LocName" HeaderText="Location Name" />
        <asp:BoundField DataField="AddressName" HeaderText="Address Name" />
        <asp:BoundField DataField="UserName" HeaderText="User Name" />
        <asp:BoundField DataField="Order_Date" HeaderText="Order Date" DataFormatString="{0:dd/MM/yyyy}" />
        <asp:BoundField DataField="BrandName" HeaderText="BrandName" />
        <asp:BoundField DataField="ProductName" HeaderText="Product Name" />
        <asp:BoundField DataField="Quantity" HeaderText="Order Quantity" />
        <asp:BoundField DataField="BalanceQty" HeaderText="Balance Quantity" />
        <asp:TemplateField HeaderText="Edit Order">
            <ItemTemplate>
                <a href="java<!-- no -->script:doit()" id="btnEdit" runat="server" >Edit</a>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Dispatch Order">
            <ItemTemplate>
                <asp:LinkButton ID="lnkDispatch" runat="server" Text="Dispatch" CommandName="Dispatch" CommandArgument='<%# Eval("OrderId") %>' ></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Cancel Order">
            <ItemTemplate>
                <asp:LinkButton ID="btnCancel" runat="server" Text="Cancel" OnClientClick="return confirm('Are you sure you want to cancel this order?')" CommandName="cDelete" CommandArgument='<%#Eval("OrderId") %>'></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

C# Code
C#
private void BindOrderGrid()
    {
        SqlConnection conn = ApplicationInfo.GetConnection();
        try
        {
            DataTable dt = DashBoardManger.BindAllOrder(conn).Tables[0];
            if (dt.Rows.Count > 0)
            {
                grdOrderDetails.DataSource = dt;
                grdOrderDetails.DataBind();
            }
        }
        catch (Exception ex)
        {
            lblMessage.Text = ex.Message;
        }
        finally
        {
            conn.Close();
            conn.Dispose();
        }
    }
 protected void grdOrderDetails_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        SqlConnection conn = ApplicationInfo.GetConnection();
        if (e.CommandName == "cDelete")
        {
            lblMessage.Text = "";
            Delete_OrderById(Convert.ToInt64(e.CommandArgument.ToString().Trim()));
            BindOrderGrid();
        }
       
    }

 protected void grdOrderDetails_RowDataBound(object sender, GridViewRowEventArgs e)
    
    {
        SqlConnection conn = ApplicationInfo.GetConnection();
        if (e.Row.RowIndex != -1)
        {
            string bintOrderId = ((Label)e.Row.FindControl("lblOrderId")).Text.Trim();
            HtmlAnchor Anchor = (HtmlAnchor)e.Row.FindControl("btnEdit");
            Anchor.Attributes.Add("onclick", "GB_show('Order Details','/CMSAdmin/frmSalesOrder.aspx?OId=" + bintOrderId + "&OP=0',600,600,'')");
        }
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            string OrderId = grdOrderDetails.DataKeys[e.Row.RowIndex].Value.ToString();
            GridView grdDispatch = e.Row.FindControl("grdDispatch") as GridView;
            DataSet ds = DashBoardManger.Bind_Data_ByOrderId(conn, Convert.ToInt64(OrderId));
            grdDispatch.DataSource = ds;
            grdDispatch.DataBind();
        }
}


<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("[id*=lnkDispatch]").click(function (e) {
$(this).closest("tr").after("" + $(this).next().html() + "")
//$(this).attr("src", "images/minus.png");
return false;
});
$("[id*=lnkDispatch]").click(function (e) {
$(this).closest("tr").next().remove();
});
});

</script>
Posted
Updated 17-Aug-15 0:18am
v5
Comments
Member 11864926 17-Aug-15 2:42am    
can anyone please help me on urgent basis

1 solution

please provide the sample data for this from you database i will slove this other provid your dataset to this.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900