2011-08-19 40 views
1

我有两个asp.net窗体。通过javascript将父类型的值传递给.NET控件。从window.opener的Gridview Selectparameter

第一种形式打开一个弹出窗口以所述第二使用的onclick的javascript如下:

onclientclick="javascript:PS=window.open('https://site/PS.aspx','PS','width=800,height=600,scrollbars=1');PS.focus()" 

第二种形式具有带SelectParameter一个.net gridview的。

<SelectParameters> 
<asp:ControlParameter ControlID="???" Name="FirstName" DefaultValue="=" PropertyName="Text" Type="String" /> 
</SelectParameters> 
</asp:SqlDataSource> 

如何将参数的值设置为父窗体上控件的值?如果可能,我不想使用会话变量或查询字符串。

谢谢。

回答

0

您应该能够从这样的父窗口拉值:

在父窗体中添加一个隐藏字段,并创建这样的函数来访问它的值:

getParameterValue = function(){ 
    return document.getElementById("<%=HiddenCtrl.UniqueID%>").value;  
} 

在子窗口中添加一个隐藏字段过了,这样设置值:

document.getElementById("<%=ChildHiddenCtrl.UniqueID%>").value = window.opener.getParameterValue(); 

然后为控制参数,使用ChildHiddenCtrl:

<asp:ControlParameter ControlID="ChildHiddenCtrl" ... > 
+0

回想起来,我可以在查询字符串中传递值。但我的问题是在控件上嵌入onclick事件,并且我需要一个客户端函数来查找控件的值,我有这个函数,但似乎无法用XSLT采用的方式进行格式化。偶然的情况下,你有没有在onclick行中的URL中嵌入控件值的示例? – o365spo

+0

你可以编辑你的答案,让你对这个问题有更多的坚持吗? –

+0

对不起,你的回答对我的原问题有效。我的错。我只是试图用一个文本框中的值来参数化一个onlick。除非用XSLT包装,否则很容易,我不能使用<因为它打破了格式化。我想这样做'查询键会去。但是得到字符<不能使用。 – o365spo