Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在弹出页面中访问父页面网格视图中的文本框?_Javascript_Asp.net_Javascript Events - Fatal编程技术网

Javascript 如何在弹出页面中访问父页面网格视图中的文本框?

Javascript 如何在弹出页面中访问父页面网格视图中的文本框?,javascript,asp.net,javascript-events,Javascript,Asp.net,Javascript Events,我有一个弹出页面,我想在其中获取文本框值,它位于主页的gridview中。 和文本框中的pupolate值 我试过: var Emp = window.opener.document.getElementById('grd_txtEmp'); Emp.rows[1].cells[3].childNodes[0].value="abc"; 我的弹出页面: <asp:TemplateField HeaderStyle-BackColor="#C0C0C0" HeaderStyle

我有一个弹出页面,我想在其中获取文本框值,它位于主页的gridview中。 和文本框中的pupolate值

我试过:

  var Emp = window.opener.document.getElementById('grd_txtEmp');
  Emp.rows[1].cells[3].childNodes[0].value="abc";
我的弹出页面:

  <asp:TemplateField HeaderStyle-BackColor="#C0C0C0" HeaderStyle-BorderColor="Black" HeaderText="Man">
                                      <ItemTemplate>     
                                      <table><tr><td>                                       
                                          <asp:TextBox ID="txtEmpy" runat="server" TextMode="MultiLine"  ontextchanged="txtEmploy_TextChanged" ReadOnly="true" Text='<%# Eval("Empry") %>'  Width="98%"></asp:TextBox>
                                       </td>
                                       <td align="right">
                                       <a href="javascript:window.open('Select.aspx', 'mywindow', 'menubar=1,resizable=1,width=600,height=400, top=200, left=400');">Select</a>   

                                      </td></tr></table>
                                      </ItemTemplate>

                                        <HeaderStyle BackColor="Silver" BorderColor="Black"  Width="30%"/>
                                </asp:TemplateField>

据我所知,您正在打开弹出窗口,单击网格视图行中的某个链接或按钮。如果这是正确的,那么在打开弹出窗口时,可以将文本框id作为查询字符串传递给弹出窗口。然后,您可以从弹出的窗口将该值设置为正确的文本框。要获取当前行中文本框的id,可以使用jQuery

举个例子,你可以试试这个想法 在文本框中添加一个css类,比如“extdata” 在链接/按钮中添加一个css类,比如“popupopener” 然后添加以下jQuery

       $(document).ready(function () {
        $('.popupopener').each(function () {
            $(this).click(function () {
                //If the textbox is at the same level as the link button
                var textBoxId = $(this).closest("table").find('.extdata').attr('id');
                window.open("Select.aspx" + "?textboxid=" + textBoxId, "mywindow", 'menubar=1,resizable=1,width=600,height=400, top=200, left=400');
            }
        );
        });
    });
更改布局如下

<asp:TemplateField HeaderStyle-BackColor="#C0C0C0" HeaderStyle-BorderColor="Black" HeaderText="Man">
                <ItemTemplate>
                    <table>
                        <tr>
                            <td>
                                <asp:TextBox ID="txtEmpy" CssClass="extdata" runat="server" TextMode="MultiLine" OnTextChanged="txtEmploy_TextChanged" ReadOnly="true" Text='<%# Eval("Empry") %>' Width="98%"></asp:TextBox>
                            </td>
                            <td align="right">
                                <a class="popupopener">Select</a>

                            </td>
                        </tr>
                    </table>
                </ItemTemplate>

                <HeaderStyle BackColor="Silver" BorderColor="Black" Width="30%" />
            </asp:TemplateField>

选择

这是行中唯一的文本框吗?单击该框后是否执行弹出操作?您可以在单击时尝试获取并保存行索引,然后在返回后写入框。GridView.rows[rowIdx].cells[col].value=是,但如何将文本框id作为查询字符串传递给弹出窗口。@Kiran hegdeI已添加了上述示例,请参阅我编辑的代码。当我通过设计页面弹出弹出页面时。@Kiran Hegde请按我上面所做的更改进行计算。谢谢。但我甚至无法打开弹出页面,因为没有可用的链接。@Kiran Hegde