我在ASP中创建了Table的一个子类。NET项目创建。该表使用一个类来格式化和创建TableRows和TableCells,我们可以称之为RowCreator。所以MyTable调用rowCreator。CreateRow(),并返回一个包含许多好东西的TableRow。
在这个TableRow中,有一个TextBox,它应该在RowCreator类添加的onblur事件上触发一个javascript方法。
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。先在页面上添加?还有其他建议吗?
我之所以这样做,是为了在javascript函数发生更改时读取文本框内容。也许有更好的办法?