我正在设计一个用于编辑数据库字段的表单页面。起初我使用的是FormView控件,但由于各种原因,我把它们改为DetailsView控件。这些代码编写起来要快得多,代码也要整洁得多,因为您只需为想要显示的每个字段添加一个Boundfield。没有文本框、标签等。到目前为止一切顺利。
然而,我的FormViews中的文本框都指定了onchange属性,这调用了一个JavaScript函数。从根本上说,它是一种提醒用户已经进行了更改并需要保存的机制,并且它运行得很好。
不幸的是,你不能将onchange属性添加到DetailsView Boundfield。我试过在代码后面(VB)在DetailsView的DataBound事件中以编程方式添加它,研究理论,当页面加载时,Boundfields被渲染为文本框,但是,正如预期的那样,它不起作用。
谁能建议一种方法来复制文本框的功能在我的FormViews,调用JavaScript函数时,文本在Boundfield被改变?如果可以的话,我真的想坚持使用DetailsViews和Boundfields。如果我可以在后台代码中实现这一点,也许通过迭代字段来添加功能,这意味着每个DetailsView只需几行代码,而不是为每个Boundfield(有很多!)声明性地添加它。
这比我想象的要简单得多。可以将onchange属性添加到DetailsView本身。完成后,对DetailsView中任何字段的任何更改都将调用JavaScript函数。