在asp.net中设置ClientID
-
07-07-2019 - |
题
是否可以设置任何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值为 未指定控件,a 使用自动生成的值。
即使我认为在Visual Studio 2008中也不可能。因为 Control.ClientID Property has只得到方法
编辑:但在Visual Studio 2010(.Net 4.0)中,它是可能的
ASP.NET 4在每个控件上都有ClientIDMode属性。 如果您想完全关闭ClientID ,您可以使用此技巧 - 它适用于任何非回发控制
这是一个ASP.NET 4.0功能。
对于VS 2010,.NET 4.0:
如果你只是尝试设置 ctrl.ClientID =&quot; stringID&quot;
,你会收到一条错误,说ClientID是只读的。您可以使用 ClientIDMode 来控制ClientID的值a> - 定义设置ClientID的算法:
ctrl.ID = "IDstring";
ctrl.ClientIDMode = ClientIDMode.Static; //ClientID value is set to the value of ID
html标记将使用控件的ID标记控件的html。因此,您可以从代码隐藏中获得某种程度的控制。
不隶属于 StackOverflow