如何在跨区域ID中访问ASP控件?

时间:2011-09-16 22:46:49

标签: c# javascript asp.net

我使用自定义控件创建一个span和2个带有int的asp控件。

<abc:edf runat="server" ID="testing" ... />

现在我的问题是如何在javascript中通过span ID访问asp控件?

我可以通过

来实现
var test = $get('<%=testing.ClientID %>');
alert(test.all.[hard coded client ID of inner asp control].value)

但显然我不想硬编码客户端ID,所以有没有更好的方法来处理它?<​​/ p>

1 个答案:

答案 0 :(得分:3)

您可以将控件ClientID公开为公共属性,如下所示:

public class TestControl : CompositeControl
{
    private TextBox textBox;

    public string TextBoxClientID
    {
        get
        {
            return textBox.ClientID;
        }
    }

    protected override void CreateChildControls()
    {
        textBox = new TextBox();
        textBox.ID = "textBox1";
        Controls.Add(textBox);
    }
}

这样你就可以在你的代码块中访问它了:

<%= TestControl1.TextBoxClientID %>