Я хочу получить доступ к значениям текстового поля 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 и получаете двойники. Что это должно означать?