【问题标题】:How to access textbox inside grid view of parent page in popup page?如何在弹出页面中访问父页面网格视图内的文本框?
【发布时间】:2014-06-13 10:20:14
【问题描述】:

我有一个弹出页面,我想在其中获取位于主页面 gridview 内的文本框值。 并在该文本框中填充值。

我试过了:

  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>

【问题讨论】:

  • 这是该行中唯一的文本框吗?您是否在单击该框时执行弹出窗口?您可以尝试在单击发生时获取并保存行索引,然后在返回后写入该框。 GridView.rows[rowIdx].cells[col].value =

标签: javascript asp.net javascript-events


【解决方案1】:

据我了解,您是在单击网格视图行中的某个链接或按钮时打开弹出窗口。如果这是正确的,那么在打开弹出窗口时,您可以将文本框 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>

【讨论】:

  • 是的,但是如何将文本框 id 作为查询字符串传递给弹出窗口。@Kiran hegde
  • 我在上面添加了示例
  • 查看我编辑的代码。当我通过设计页面弹出弹出页面时。@Kiran hegde
  • 尝试我上面所做的更改
  • 谢谢。但我什至无法打开弹出页面,因为没有可用的链接。@Kiran Hegde
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-09
  • 1970-01-01
  • 2016-01-20
  • 1970-01-01
相关资源
最近更新 更多