2011-08-02 13:40:22迷鼠

[ExtJS] 取得後端Response的XML內容顯示於前端Grid

//前端-函數:Grid建立
function x2g() {
                //定義讀取的欄位對應
                var record_array= new Ext.data.Record.create([
                { name: 'obl_no', mapping: 'obl_no' },
                { name: 'obl_text', mapping: 'obl_text'}]);
                
                //取得XMLreader的方法
                var store = new Ext.data.Store({
                    proxy: new Ext.data.HttpProxy({ url: 'xml2g.aspx' }),
                    reader: new Ext.data.XmlReader({ record: 'row' },record_array)
                });
                
                //定義欄位標題及對應資料源
                var column_array = [
                { header: '編號', width: 50, dataIndex: 'obl_no' },
                { header: '課程大綱', width: 200, dataIndex: 'obl_text'}];

                //建構Grid
                var grid_v = new Ext.grid.GridPanel({
                    store: store,
                    columns: column_array,
                    renderTo: 'grid_v',
                    width: 400,
                    height: 200
                });
                store.load();
            };

補充:後端xml2g.aspx檔案Response為XML方式

//在SQL語法後端接上語法 for xml path('row')
//可將SQL查詢內容轉換成XML格式並以row標籤標記

//在要回傳的temp變數前端放入XML宣告
string temp = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root><recCount>0</recCount>";

while (){
//資料庫取得的資料ToString並丟入temp變數中
};

//在回傳的temp變數結尾放入結尾標籤 </root>
temp += "</root>";

//Response.write之前需加入下列,用以指定ASP輸出為XML文件
Response.ContentType = "text/xml";