Javascript 如何在弹出页面中访问父页面网格视图中的文本框?
我有一个弹出页面,我想在其中获取文本框值,它位于主页的gridview中。 和文本框中的pupolate值 我试过: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
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