【发布时间】:2014-02-19 08:29:57
【问题描述】:
我有一个用户控件,其中包含一些控件并将其放入父页面。
单击用户控件中的服务器端按钮时,我正在调用一个方法。
当上面的按钮被点击到父页面的 JavaScript 函数时,我需要传递一个值。
我在用户控件中创建了一个私有变量及其公共属性。
单击按钮时,为公共属性分配一些字符串。
在父aspx.cs页面中,我通过Page_Load中的用户控件ID检索到上述属性的值,并将其分配给父aspx页面中定义的隐藏变量。
现在,当我尝试在父页面 JavaScript 函数中获取此隐藏变量的值时,它会显示为空。
任何其他传递值的方法,首先我想到的是 Session var,但后来 Session var 在 JavaScript 中无效。
以下是我尝试过的代码:
UserControl ascx.cs 页面:
private string _button1Clicked;
public string Button1Clicked
{
get { return _button1Clicked; }
set { _button1Clicked = value; }
}
public void Button1_Click(object sender, EventArgs s)
{
PopulateOtherViews();
Button1Clicked = "Button1Clicked";
}
父页面aspx.cs页面:
protected void Page_Load(object sender, EventArgs e)
{
hiddenButton1Click.Value = filter.Button1Clicked;
}
父页面aspx页面:
<input type="hidden" id="hiddenButton1Click" runat="server" />
function PageLoad()
{
var x = document.getElementById('hiddenButton1Click');//x.Value is "", empty
if (x.value == "Button1Clicked")
{
doOpenFilterCollapse();
}
else {
doCloseFilterCollapse();
}
}
}
请专家在这里协助。任何指针都会非常有帮助。
问候
阿努拉格
【问题讨论】:
-
您的 hiddenButton1Click 是 runat="server"。我认为您需要在 javascript 中使用 '' 调用它
-
让我也尝试添加ClientID..谢谢
标签: c# javascript asp.net user-controls