C# 将值从用户控件传递到父页面时出现奇怪的问题

C# 将值从用户控件传递到父页面时出现奇怪的问题,c#,javascript,asp.net,user-controls,C#,Javascript,Asp.net,User Controls,我有一个用户控件,其中包含一些控件,并将其放入父页面 在用户控件中单击服务器端按钮时,我正在调用一个方法 当上面的按钮被点击到父页面的JavaScript函数时,我需要传递一个值 我在用户控件中创建了一个私有变量及其公共属性 单击按钮时为公共属性分配了一些字符串 在父aspx.cs页面中,我通过page_Load中用户控件的ID检索了上述属性的值,并将其分配给父aspx页面中定义的隐藏变量 现在,当我试图在父页面JavaScript函数中获取这个隐藏变量的值时,它是空的 任何其他传递值的方法,首

我有一个用户控件,其中包含一些控件,并将其放入父页面

在用户控件中单击服务器端按钮时,我正在调用一个方法

当上面的按钮被点击到父页面的JavaScript函数时,我需要传递一个值

我在用户控件中创建了一个私有变量及其公共属性

单击按钮时为公共属性分配了一些字符串

在父aspx.cs页面中,我通过page_Load中用户控件的ID检索了上述属性的值,并将其分配给父aspx页面中定义的隐藏变量

现在,当我试图在父页面JavaScript函数中获取这个隐藏变量的值时,它是空的

任何其他传递值的方法,首先我想到了sessionvar,但sessionvar在JavaScript中是无效的

以下是我尝试过的代码:

用户控件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";           
        }
    protected void Page_Load(object sender, EventArgs e)
            {
              hiddenButton1Click.Value = filter.Button1Clicked;   
            }
父页面aspx.cs页面:

private string _button1Clicked;
        public string Button1Clicked
        {
            get { return _button1Clicked; }
            set { _button1Clicked = value; }
        }

public void Button1_Click(object sender, EventArgs s)
        {
            PopulateOtherViews();
            Button1Clicked = "Button1Clicked";           
        }
    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();
                        }
    }
}

函数PageLoad()
{
var x=document.getElementById('hiddenButton1Click');//x.Value为“”,为空
如果(x.value==“按钮1已点击”)
{
doOpenFilterCollapse();
}
否则{
doCloseFilterCollapse();
}
}
}
请专家在这里协助。任何指针都将非常有用

问候

Anurag

用JavaScript试试这个

var x = document.getElementById('<%= hiddenButton1Click.ClientID %>');

隐藏的ctl是
runat=“server”
,因此,如果检查页面元素,您将看到类似
ctl00\uu
+控件id的内容。 因此,在您当前的javascript中,将找不到
hiddenbutton1单击
,因此您需要


'

您的隐藏按钮1单击在=“服务器”上运行。我想你需要在javascript中用“让我也尝试添加ClientID..谢谢让我也尝试添加ClientID..谢谢