是否可以设置任何asp.net服务器控件的ClientID
? 我应该如何做到这一点?
是否可以设置任何asp.net服务器控件的ClientID
? 我应该如何做到这一点?
好消息是,在VS 2010和.Net 4中,您将拥有完全控制客户端ID!
对于当前版本的.Net仍然可以应付。我假设您需要JavaScript的ID。如果是这样,只需像这样获取ID:
<script type="text/javascript">
var myTextBox = $('#<%=TextBox1.ClientID%>');
</script>
ClientID
属性。public override string ClientID
{
get { return "whatever"; }
}
但是正如其他人所指出的那样,你无法从外部进行操作。
这是不可能的。ClientID是由ASP.NET生成的。根据MSDN:
ClientID值是通过将控件的ID值和其父控件的UniqueID值连接而生成的。如果未指定控件的ID值,则使用自动生成的值。
我认为在Visual Studio 2008中不可能实现。因为Control.ClientID属性只有获取方法
编辑:但在Visual Studio 2010(.Net 4.0)中是可能的
针对VS 2010,.NET 4.0:
如果您尝试设置ctrl.ClientID="stringID"
,您将会收到一个错误提示,指出ClientID是只读的。您可以使用ClientIDMode来控制ClientID的值 - 它定义了设置ClientID的算法:
ctrl.ID = "IDstring";
ctrl.ClientIDMode = ClientIDMode.Static; //ClientID value is set to the value of ID
HTML标记将使用控件的ID标记控件的HTML。因此,您可以从代码后台对其进行某些程度的控制。
这是一个ASP.NET 4.0的特性。