五、逻辑层设计
(一)添加RSS频道
在展开真正的逻辑层设计之前,先让我们简单地浏览一下下面的草图4。图4展示了我对于两个重要ASP.NET AJAX客户端控件—ListView和DataSource以及MS AJAX官方资料中建议的实现客户端数据绑定架构的理解。
图4:ASP.NET AJAX框架中建议的典型的客户端数据绑定架构
从上图中,我们可以得出如下结论:在实战环境(本例中也是如此)下,当添加一个新的RSS频道时,我们并不需要立即把这些数据存储到服务器端的SQL Server数据库中,而是暂时存储到与客户端控件ListView相关联的数据源控件中。因此,你可以已经猜出,该DataSource控件是支持批更新操作的—支持对于客户端修改数据的临时存储并最终以批处理方式实现更新服务器端数据库。上面草图中的两个重要方法—“Save”和“Load”在此实现逻辑中起着重要作用。
在这一节中,我们仅需要在客户端临时存储用户新输入的RSS频道信息。在此,我在操作ListView控件的过程中遇到了第一个难题。下面先让我们来看一下相应的源码。
列表1
<script language="javascript" type="text/javascript">
var g_RSSNameList;
function pageLoad(sender, args) {
g_RSSNameList=$find('RSSNameList');
…………
}
function Add_onclick() {
g_RSSNameList.addItem();
var index=datatable.get_length()-1;
datatable.getItem(index).setProperty('Rss_ID', index);
datatable.getItem(index).setProperty('Rss_Name', $find('txtRssName').get_text());
datatable.getItem(index).setProperty('Rss_URL', $find('txtRssUrl').get_text());
}