ASP.NET Aries 進階開發教程:Excel匯入之代碼編寫(番外篇)

來源:互聯網
上載者:User

標籤:err   參數說明   參數   over   .com   var   bsp   ide   類型   

前言:

以許架構提供的匯入配置功能,已經能解決95%以上的匯入情況,但有些情況總歸還是得代碼來解決。

本篇介紹與匯入相關的代碼。

1、前端追加匯入時Post的參數:
var grid = new AR.DataGrid(‘V_Test‘, ‘Demo_TestA‘);//...... /* 匯入前追加一些Post參數 */    grid.ToolBar.BtnImport.onBeforeExecute = function (para)    {        alert("匯入的參數:" + JSON.stringify(para));        para.Name = "追加一個名字,Excel匯入配置的格式化可以配置@Name";        para.Para2 = "隨意了...";    }
2、後端代碼攔截匯入事件:

如果不知道在哪寫代碼,看:ASP.NET Aries 開源開發架構:開發指南(一) 瞭解最後架構的請求流程。

 public override ImportResult BeforeImport(MDataTable dt, MDataRow excelInfo, out string msg)        {            if (dt.TableName == "V_UserList")//只處理特定的(視圖對象)表            {                //參數說明:                //dt 從Excel導讀出來的資料表,列頭還是中文的                //excelInfo 進階Excel配置(若有配置的話,沒配置則為null)                msg = "錯誤資訊,只有返回false時才有用";                if (msg == "自己處理完邏輯")                {                    //自己補充邏輯                    bool result = FormatExcel(dt, excelInfo);//調用系統方法,把列頭中文翻譯成英文,把下拉項目的中文翻譯成值                    if (result)                    {                        //自己寫插入資料庫的方法。                        //result = ExcelConfig.AcceptChanges(dt, excelInfo, ObjName);// dt.AcceptChanges(AcceptOp.Auto);                    }                    return ImportResult.True;                }                else if (msg == "自己處理完邏輯,中止執行,返回處理失敗")                {                    return ImportResult.True;                }                else                {                    //自已只處理了dt的裡資料。                    return ImportResult.Continue;//繼續讓架構處理下去                }            }            return base.BeforeImport(dt,excelInfo,out msg);        }

架構的提供的核心方法有兩個:

FormatExcel:

內部處理流程:1、將中文列頭翻譯成英文。2、將索引值對的中文轉換成數值。3、處理一些預設值設定問題。4、完成基礎的資料驗證(必填、是否為Null,長度、資料類型)

ExcelConfig.AcceptChanges(dt, excelInfo, ObjName);

系統會根據進階Excel配置項的內容進行複雜的處理,並根據配置決定是更新還是插入。

對於ExcelConfig。AcceptChanges的方法,還多了一個進階擴充,讓你可以在每條資料發生動作的前後可以處理些事情。

具體看:Aries.Logic項目下的ExcelConfigExtend.cs檔案。

總結說明:

如果是要增加資料驗證、或者補齊資料,那麼重寫:BeforeImport事件,就很必要。

如果是每行資料發生的前後,需要做點事情,那麼,在Aries.Logic.ExcelConfigExtend中補點代碼就可以了。

ASP.NET Aries 進階開發教程:Excel匯入之代碼編寫(番外篇)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.