我使用自定义控件创建一个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>
答案 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 %>