【发布时间】:2009-01-19 10:09:53
【问题描述】:
我在我的 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 函数中读取文本框内容。也许有更好的方法来做到这一点?
【问题讨论】:
标签: c# .net asp.net javascript asp.net-3.5