带有单个 ModalPopupExtender/Panel 用于行编辑的 GridView






4.93/5 (44投票s)
带有单个 ModalPopupExtender/Panel 用于行编辑的 GridView。
引言
我不喜欢大多数 ASP.NET 栅格提供的内联行编辑。因此,最近我开始尝试实现一个弹出编辑窗口来编辑栅格行中包含的值。为了使其更有趣,我想使用 Asynchronous JavaScript 回调来实现这一点。由于我已经在用 Ajax.net 和 AJAX Toolkit,我开始尝试弄清楚使用哪个控件,以及它们提供的任何东西是否适合我。
要求
- 我想能够弹出一个编辑窗口进行编辑,该窗口禁用背景窗口(或呈现被禁用的外观)。
- 我想在服务器端控制保存和编辑,因为我使用通过
ObjectDataSource
控件绑定到栅格的自定义业务对象。 - 它需要是异步的。我想要功能,但也想要速度,并且易于客户使用。
历史
ModalPopup:我首先查看了模态弹出扩展器,因为它似乎正是我所需要的。但是,我对如何使用它有一些问题。
- 需要
TargetControlID
属性。因此,如果我想按照它的设计方式使用它,那么我必须将一个ModalPopup
嵌入到栅格的ItemTemplate
列中,并带有一个关联的按钮。这对我来说一点也不吸引人。PopupControlID
也会出现同样的问题。 - 将值放入弹出面板中包含的字段中。同样,我可以将面板嵌入到
ItemTemplate
列中,并使用标准绑定绑定这些字段。这**真的**不吸引我。有人想看 HTML 膨胀吗?
PopupControl:我很快放弃了它,因为它在我想做的事情上比模态弹出窗口有更多的问题。
Raj Kaimal - 使用 AJAX 和 UpdatePanelPopupExtender 的主从细节:我不得不说这个看起来很棒,并且运行得很好。我遇到的唯一问题是,在进行自定义数据绑定时,它有时会出错。另一个问题是支持。我讨厌不得不等待 Raj 更新他的代码以用于下一个版本的 AJAX。考虑到他们到目前为止在从 beta 版到 1.0 版更改 Ajax.net 设计方面的跟踪记录,我对这个前景并不太热衷。尽管如此,这是一个很棒的控件。很想看到类似的东西嵌入到 Ajax.net 中,这样我找到的解决方法就会过时。
沮丧之余,我正要放弃,这时我读了 Dynamically-Created-ModalPopupExtender。这让我重新开始使用 ModalPopupExtender
。所有示例代码都包含在 zip 文件中,以及一个显示嵌入在 ASP.NET AJAX 选项卡内的多个栅格的示例。您将需要 VS.NET 2005 和 ASP.NET AJAX 框架的 1.0 版本。这些图片由 Michael Hoskins 提供。
变更
- 2007 年 2 月 26 日 - 增加了使用 XML 作为数据源的选项。将默认为 XML。还添加了一个邮件栅格。