Asp.net 如何从UserControl到MainPage获取文本框的值

Asp.net 如何从UserControl到MainPage获取文本框的值,asp.net,user-controls,Asp.net,User Controls,我的aspx文件上有一个UserControl。在主页上我有一个按钮。单击按钮时,我想提醒UserControl的文本框值。可能吗?您可以在按钮上使用onclientclick属性- onclientclick="alert(document.getElementById('<%= yourtextbox.ClientID %>').value)" 这假定您的按钮是asp.net控件,如果它只是一个HTML按钮,您可以执行- onclick="alert(document.getE

我的aspx文件上有一个UserControl。在主页上我有一个按钮。单击按钮时,我想提醒UserControl的文本框值。可能吗?

您可以在按钮上使用onclientclick属性-

onclientclick="alert(document.getElementById('<%= yourtextbox.ClientID %>').value)"
这假定您的按钮是asp.net控件,如果它只是一个HTML按钮,您可以执行-

onclick="alert(document.getElementById('<%= yourtextbox.ClientID %>').value)"

您需要从UserControl中公开UserControl的文本框。像这样:

public TextBox txtBox
{
    get
    {
        return TextBox1;
    }
    set
    {
        TextBox1 = value;
    }
}
这样,TextBox就成为UserControl的公共属性,任何使用它的页面都可以访问它。您可以通过以下方式从Javascript访问它:

function getTextBoxAlert() {
    alert(document.getElementById("<%=MyTextBox1.txtBox.ClientID.ToString() %>").value);
}
其中MyTextBox1是UserControl的名称ID,txtBox是属性的名称


祝你好运

改为使用:onclientclick=alertdocument.getElementById.value。如果不这样做,它将无法工作,因为文本框的客户端id将是所有控件祖先id的串联。如果控件是服务器控件而不是简单的My textbox是DevXPress的ASPxTextbox,则此项适用。这个解决方案对它有效吗?@erdincozdemir-我真的不确定,你能试试看吗?我注意到我在给Textbox指定ClientInstanceName时犯了一个错误。因此,aspxtbox.GetText方法不起作用。当我纠正错误时,它会正常工作。谢谢你的回答。