我有一个弹出页面,我想获取主页面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>
答案 0 :(得分:0)
据我所知,您在点击网格视图行中的某个链接或按钮时打开弹出窗口。如果这是正确的,那么在打开弹出窗口时,您可以将文本框ID作为查询字符串传递给弹出窗口。然后,您可以从poped up窗口将值设置为正确的文本框。要获取当前行中文本框的id,可以使用jQuery
举个例子,你可以试试这个想法 将css类添加到文本框中,例如&#34; extdata&#34; 将一个css类添加到链接/按钮,例如&#34; popupopener&#34; 然后添加以下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>