五、邏輯層設計
(一)添加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());
}