在asp.net中设置ClientID

发布于 2024-08-04 15:25:27 字数 59 浏览 6 评论 0原文

是否可以设置任何 ASP.NET 服务器控件的 ClientID?我该怎么做?

Is it possible to set the ClientID of any asp.net server control? How can I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

耳钉梦 2024-08-11 15:25:27

好消息是,在 VS 2010 .Net 4 中,您将拥有 完全控制客户端 ID

对于 .Net 的当前版本,您仍然可以按时完成。我假设您需要 JavaScript 的 ID。如果是这样,只需获取 ID,如下所示:

<script type="text/javascript">
    var myTextBox = $('#<%=TextBox1.ClientID%>');
</script>

The good news is that in VS 2010 .Net 4, you'll have complete control over Client IDs!

Still for the current versions of .Net, you can make due. I assume you need the ID for JavaScript. If so, just get the ID like so:

<script type="text/javascript">
    var myTextBox = $('#<%=TextBox1.ClientID%>');
</script>
长亭外,古道边 2024-08-11 15:25:27

我建议不要这样做,除非你确定你想这样做,但有一种方法。您可以从服务器控件中覆盖 ClientID 属性。

public override string ClientID
{
    get { return "whatever"; }
}

但正如其他人指出的那样,你无法从外部做到这一点。

I would advice against doing this unless you are sure you want to do it, but there is a way. You can override the ClientID property from within the server control.

public override string ClientID
{
    get { return "whatever"; }
}

But as others have noted, you can't do it from outside.

一场信仰旅途 2024-08-11 15:25:27

那是不可能的。 ClientID 由 ASP.NET 生成。来自 MSDN

ClientID 值由以下方式生成
连接 ID 值
控件及其 UniqueID 值
家长控制。如果 ID 值为
未指定控制,一个
使用自动生成的值。

That's not possible. The ClientID is generated by ASP.NET. From MSDN:

The ClientID value is generated by
concatenating the ID value of the
control and the UniqueID value of its
parent control. If the ID value of
the control is not specified, an
automatically generated value is used.

起风了 2024-08-11 15:25:27

即使我认为这在 Visual studio 2008 中也是不可能的。因为 Control.ClientID 属性有仅获取方法

编辑:但在 Visual studio 2010(.Net 4.0) 中这是可能的

Even i think it is not possible in Visual studio 2008 . Because Control.ClientID Property has only get method

Edit :But in Visual studio 2010(.Net 4.0) it is possible

伤感在游骋 2024-08-11 15:25:27

ASP.NET 4 在每个控件上都有 ClientIDMode 属性。
如果您想完全关闭 ClientID,您可以使用这个技巧 - 它适用于任何非回发控制

ASP.NET 4 has ClientIDMode property on each control for that.
If you want to turn off ClientID completely you can use this trick - it works for any non-postback control

红玫瑰 2024-08-11 15:25:27

这是 ASP.NET 4.0 的一项功能。

This is an ASP.NET 4.0 feature.

如果没有 2024-08-11 15:25:27

对于 VS 2010、.NET 4.0:

如果您只是尝试设置 ctrl.ClientID="stringID",您将收到错误消息,指出 ClientID 是只读的。您可以使用 ClientIDMode - 定义设置 ClientID 的算法:

ctrl.ID = "IDstring";
ctrl.ClientIDMode = ClientIDMode.Static;   //ClientID value is set to the value of ID

html 标记将使用控件的 ID 来标记控件的 html。因此,您可以从代码隐藏中进行一定程度的控制。

For VS 2010, .NET 4.0:

If you just try to set ctrl.ClientID="stringID" you will get an Error, saying that ClientID is read only. You can control the value of ClientID using ClientIDMode - which defines the algorithm with which ClientID is set:

ctrl.ID = "IDstring";
ctrl.ClientIDMode = ClientIDMode.Static;   //ClientID value is set to the value of ID

The html markup will mark your control's html with the control's ID. Thus you have some degree of control from the code-behind.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文