【问题标题】:Weird issue with passing value from user control to parent page将值从用户控件传递到父页面的奇怪问题
【发布时间】: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


【解决方案1】:

在 JavaScript 中试试这个

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

而不是这个

var x = document.getElementById('hiddenButton1Click');

【讨论】:

  • 让我也尝试添加ClientID..谢谢
【解决方案2】:

您的隐藏 ctl 是 runat="server",因此如果您检查页面元素,您会看到类似 ctl00_ + 控件 ID 的内容。 所以在你当前的javascript中找不到hiddenButton1Click所以你需要

'&lt;%=hiddenButton1Click .ClientID%&gt;'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多