当前位置:  开发笔记 > 编程语言 > 正文

如何为ASP.NET TextBox获取正确的ClientID?

如何解决《如何为ASP.NETTextBox获取正确的ClientID?》经验,为你挑选了1个好方法。

我在我创建的ASP.NET项目中创建了一个Table的子类.该表使用一个类来格式化并创建TableRows和TableCells,我们可以将其称为RowCreator.因此,MyTable调用rowCreator.CreateRow()并返回一个包含很多好东西的TableRow.

在这个TableRow中有一个TextBox,它应该在onblur事件上触发一个javascript方法,该方法由RowCreator类添加.

textBox.Attributes.Add("onblur", "javascriptMethod('" + textbox.ClientID + "');");

我也尝试创建一个textBox的子类,它实现了一个添加onblur事件的方法:

Attributes.Add("onblur", "javascriptMethod('" + this + "');")

哪个不起作用.ID只是文本框子类的名称空间.

而JavaScript方法非常简单:

function javascriptMethod(boxId) { alert(boxId); }

问题是,我猜这是因为尚未将文本框控件添加到控件集合中,boxId不是正确的客户端ID.它与服务器端ID相同.有没有办法获得正确的ID而不必首先在页面上使用Controls.Add添加行?还有其他建议吗?

我甚至这样做的原因是,只要它被更改,就从javascript函数中读取文本框内容.也许有更好的方法来做到这一点?



1> M4N..:

您可以将javascript调用更改为:

textBox.Attributes.Add("onblur", "javascriptMethod(this);");

然后,您可以使用javascript方法访问文本框:

function javascriptMethod(textbox) { alert(textbox.id); }

这样您就不需要使用文本框控件的ClientID.

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有