paul_vin Ответов: 0

Я хочу получить доступ к значениям текстового поля sub grid в gridview


Я создал один основной gridview как gvMainTest
а в его шаблоне создается поле subgridview (gvSubTest)
Я привязки данных к GridView в обе сетки и саб у меня есть одно текстовое поле, которое содержит некоторые значения теперь я хочу, чтобы обновить значения


на кнопку "Отправить", когда я получаю значения с помощью цикла foreach для всей подгруппы таблицы, но я получаю значения в текстовое поле удваивается

также у меня есть функция JavaScript, чтобы показать скрыть вложенные GridView в на изображения, но когда я ввожу значения на вложенные GridView и затем скрыть вложенные GridView в таком случае мне нужны эти значения в текстовое поле, чтобы вставить в базу данных

Что я уже пробовал:

Код Gridview выглядит следующим образом

<div class="row my-col" style="border: 1px solid #a0e3a2; margin: 10px 0px; padding: 5px 0px;" runat="server" id="subentrygriddiv">
                           <div class="col-md-12  grid-view-div" style="margin-top: 10px;">
                               <div class="table-responsive grid-container" style="padding-bottom: 20px; margin-left: 0px;">
                                   <%--<asp:GridView ID="gvCustomers" runat="server" AutoGenerateColumns="false" CssClass="Grid" DataKeyNames="Main_Test_Id" OnRowDataBound="OnRowDataBound">--%>
                                   <asp:GridView ID="gvMainTest" runat="server" AutoGenerateColumns="false" DataKeyNames="Main_Test_Id" OnRowDataBound="gvMainTest_RowDataBound " CssClass="table table-bordered" Style="margin: 0px" ShowHeaderWhenEmpty="true">
                                       <Columns>
                                           <asp:TemplateField ItemStyle-Width="50px" ItemStyle-HorizontalAlign="center">

                                               <ItemTemplate>
                                                   <asp:CheckBox ID="CheckMain" runat="server" />
                                                   <%--<img alt="" style="cursor: pointer" src="Images/zoom_out.png" />--%>


                                                   </ItemTemplate>
                                               </asp:TemplateField>
                                           <asp:TemplateField ItemStyle-Width="50px" ItemStyle-HorizontalAlign="center">

                                               <ItemTemplate>
                                                       <img alt="" style="cursor: pointer" src="images/zoom_out.png" />

                                                   <%-- <asp:Panel ID="pnlOrders" runat="server" Style="display: none">--%>

                                                   <asp:Panel ID="pnlSubTest" runat="server" Style="display: none">
                                                       <asp:GridView ID="gvSubTest" runat="server" AutoGenerateColumns="false" CssClass="table table-bordered" OnRowDataBound="gvSubTest_RowDataBound" >
                                                           <%-- <asp:GridView ID="gvOrders" runat="server" AutoGenerateColumns="false" CssClass="ChildGrid">--%>
                                                           <Columns>

                                                               <asp:TemplateField>
                                                                   <ItemTemplate>
                                                                       <asp:CheckBox ID="checkSub" runat="server" />
                                                                   </ItemTemplate>
                                                               </asp:TemplateField>

                                                               <asp:BoundField ItemStyle-Width="150px" DataField="Parameters_Id" HeaderText="Parameters Id" HeaderStyle-CssClass="hide" ItemStyle-CssClass="hidden" />
                                                               <asp:BoundField ItemStyle-Width="150px" DataField="Main_Test_Id" HeaderText="Main Test Id" HeaderStyle-CssClass="hide" ItemStyle-CssClass="hidden" />
                                                               <asp:BoundField ItemStyle-Width="400px" DataField="Parameter_Name" HeaderText="Parameter Name" />

                                                              <%-- <asp:BoundField ItemStyle-Width="200px" DataField="Result_Val" HeaderText="Site | Customer | General" />
                                                               <asp:BoundField ItemStyle-Width="100px" DataField="Result_Val" HeaderText="Min | Max" />--%>

                                                                <asp:BoundField ItemStyle-Width="200px" DataField="CustSiteGeneralRateSub" HeaderText="Site | Customer | General" />
                                                               <asp:BoundField ItemStyle-Width="100px" DataField="MinMaxSub" HeaderText="Min | Max" />
                                                               <asp:TemplateField>
                                                                   <HeaderTemplate>
                                                                       Rate:
                                                                   </HeaderTemplate>
                                                                   <ItemTemplate>
                                                                       <%--<asp:TextBox ID="txtSubRate" EnableViewState="false" runat="server" Style="height: auto; padding-bottom: 0px; margin: 0px;"  OnTextChanged="txtSubRate_TextChanged" OnLoad="txtSubRate_Load" AutoPostBack="true"/>--%>
                                                                       <asp:TextBox ID="txtSubRate" runat="server" Style="height: auto; padding-bottom: 0px; margin: 0px;" Text='<%# Eval("Rate") %>' />
                                                                   </ItemTemplate>
                                                               </asp:TemplateField>

                                                               <%--<asp:TemplateField>
                                                                   <ItemTemplate>
                                                                       <asp:TextBox ID="Value" runat="server" Style="height: auto; padding-bottom: 0px; margin: 0px;" />
                                                                   </ItemTemplate>
                                                               </asp:TemplateField>--%>
                                                           </Columns>
                                                       </asp:GridView>
                                                   </asp:Panel>
                                               </ItemTemplate>
                                           </asp:TemplateField>
                                           <asp:BoundField ItemStyle-Width="50px" DataField="Main_Test_Id" HeaderText="Main_Test_Id" HeaderStyle-CssClass="hide" ItemStyle-CssClass="hidden" />
                                           <asp:BoundField ItemStyle-Width="500px" DataField="Main_Test_Name" HeaderText="Main Test Name" />
                                           <asp:BoundField ItemStyle-Width="100px" DataField="Department_name" HeaderText="Department Name" />
                                           <asp:BoundField ItemStyle-Width="200px" DataField="CustSiteGeneralRate" HeaderText="Site | Customer | General" />
                                           <asp:BoundField ItemStyle-Width="100px" DataField="MinMax" HeaderText="Min | Max" />


                                           <asp:TemplateField>
                                               <HeaderTemplate>
                                                   Rate:
                                               </HeaderTemplate>
                                               <ItemTemplate>
                                                   <asp:TextBox ID="txtRate" runat="server" Style="height: auto; padding-bottom: 0px; margin: 0px;" Text='<%# Eval("Rate") %>' />
                                               </ItemTemplate>
                                           </asp:TemplateField>

                                           <asp:TemplateField>
                                               <HeaderTemplate>
                                                   Is Group:
                                               </HeaderTemplate>
                                               <ItemTemplate>
                                                   <asp:CheckBox ID="IsGroup" runat="server" Checked="true" OnCheckedChanged="IsGroup_CheckedChanged" />
                                               </ItemTemplate>
                                           </asp:TemplateField>

                                       </Columns>
                                   </asp:GridView>

                               </div>
                           </div>

                       </div>
                       <div class="row  my-col-btn">
                           <div class="col-md-12">
                               <asp:LinkButton runat="server" ID="btnSubmit" ValidationGroup="val" CssClass="btn btn-success" OnClick="btnSubmit_Click">Submit</asp:LinkButton>
                               <asp:LinkButton runat="server" ID="btnUpdate" ValidationGroup="val" CssClass="btn btn-success" OnClick="btnUpdate_Click">Update</asp:LinkButton>
                               <asp:LinkButton runat="server" ID="btnReset" CssClass="btn btn-danger" OnClick="btnReset_Click">Reset</asp:LinkButton>
                           </div>
                       </div>




функция JavaScript

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

  <script type="text/javascript">
      $("[src*=zoom_out]").live("click", function () {
          //alert("Zoom In");
          $(this).closest("tr").after("<tr><td></td><td colspan = '999'>" + $(this).next().html() + "</td></tr>")
          $(this).attr("src", "images/zoom_in.png");
      });
      $("[src*=zoom_in]").live("click", function () {
          //alert("Zoom Out");
          //alert("Test2");
          $(this).attr("src", "images/zoom_out.png");
          $(this).closest("tr").next().remove();
      });
  </script>


код отправки btn выглядит следующим образом

protected void btnSubmit_Click(object sender, EventArgs e)
    {
        int customerId = 0;
        int SiteDetailsId = 0;
        int RefFromPickUPReqest = 0;
        int.TryParse(ddlCustomer.SelectedValue, out customerId);
        int.TryParse(ddlSite.SelectedValue, out SiteDetailsId);
        int.TryParse(ddlRefFromPickUPReqest.SelectedValue, out  RefFromPickUPReqest);
        Performa_invoice objPerforma_invoice = new Performa_invoice(-1, customerId, RefFromPickUPReqest, SiteDetailsId, DateTime.Now, EmpId);
        if (objPerforma_invoice.Insert())
        {
            int PerformanceId = 0;
            PerformanceId = objPerforma_invoice.GetMaxId();
            int MainTestId = 0;

            string checkBoxval = "";

            foreach (GridViewRow dr in gvMainTest.Rows)
            {
                CheckBox CheckMain = dr.FindControl("CheckMain") as CheckBox;
                if (CheckMain.Checked == true)
                {
                    int.TryParse(dr.Cells[1].Text, out MainTestId);
                    CheckBox chkItem = (CheckBox)dr.FindControl("IsGroup");
                    if (chkItem.Checked)
                    {
                        checkBoxval = "Yes";
                    }
                    else
                    {
                        checkBoxval = "No";
                    }


                    TextBox txtRate = (dr.Cells[6].FindControl("txtRate") as TextBox);
                    //TextBox txtRate = (TextBox)Page.FindControl("txtRate");

                    Pi_main_test objpi_main_test = new Pi_main_test(-1, PerformanceId, MainTestId, dr.Cells[4].Text, dr.Cells[5].Text, txtRate.Text, checkBoxval);
                    //Pi_main_test objpi_main_test = new Pi_main_test(-1, PerformanceId, MainTestId, dr.Cells[4].Text, dr.Cells[5].Text, dr.Cells[6].Text, checkBoxval);
                    objpi_main_test.Insert();
                    int PI_MT_ID = 0, ParameterId = 0;
                    PI_MT_ID = objpi_main_test.GetMaxId();
                    GridView gvSubTest = dr.FindControl("gvSubTest") as GridView;
                    foreach (GridViewRow dr2 in gvSubTest.Rows)
                        {
                        int.TryParse(dr2.Cells[1].Text, out ParameterId);
                        CheckBox checkSub = dr2.FindControl("checkSub") as CheckBox;
                        if (checkSub.Checked == true)
                        {
                            TextBox txtparameterRate12 = (dr2.Cells[6].FindControl("txtSubRate") as TextBox);

                            TextBox txtparameterRate22 = dr2.FindControl("txtSubRate") as TextBox;
                            //txtparameterRate12.
                                Pi_sub_test objPi_sub_test = new Pi_sub_test(-1, PI_MT_ID, MainTestId, ParameterId, dr2.Cells[4].Text, dr2.Cells[5].Text, txtparameterRate22.Text);
                            //Pi_sub_test objPi_sub_test = new Pi_sub_test(-1, PI_MT_ID, MainTestId, ParameterId, dr2.Cells[4].Text, dr2.Cells[5].Text, dr2.Cells[6].Text);
                            objPi_sub_test.Insert();
                        }
                    }

                }

            }

            AlertMesg(true, "Record insert successfully.");
            Reset();
            PanelShowHide();
            LoadGridView(1);
            LoadDrowpDown();
        }
        else
        {
            AlertMesg(false, "Record insertion fail. Please try again...!");
        }

    }

Vincent Maverick Durano

Я не понимаю вашего вопроса. Вы сказали, что уже получаете значения TextBox в sub gridview и получаете двойники. Что это должно означать?

0 Ответов