動態之動態輸入表單的實現 )

來源:互聯網
上載者:User
需求的產生:公司要求用系統對產品價格實現全球控管,在價格管理模組要求動態產生輸入表單,其效果就像Excel的操作一樣,具體見:



“1”控制紅框範圍內表單“2”的產生(不同產品線有不固定數量的產品所致)

“3”控制藍框範圍內表單“4”的產生(不同產品在同一段時間內定價策略各異)

解決方案:

“2”中除“4”部分表單採取Web控制項

“4”中表單採取Html代碼類比。

經過摸索發現,動態產生的Web控制,只要控制項ID相同,重新整理之後是可以保留狀態資訊的(先在Aspx的Page中加入EnableViewState=true),所以現在要解決的問題就是需要有一個隱藏控制項ItemCount記錄有多少個“2”產生了,ItemCount是拉進來的非動動的控制項,狀態資訊可以保留,所以“1”所做的動作其實就是給ItemCount的記數自加,然後在Page_Load的時候迴圈產生“2”,記得所有控制項應該有規律(控制項類型_控制項意義_行號)的產生標識即控制項ID。

“3”對“4”的產生需要用Hmtl代碼來類比,原本想過也用Web控制項,最終研究的結果是動態控制項中的動態控制項沒有辦法保留狀態資訊,所以這裡的狀態資訊以及表單本身都只能類比出來。所以又要拖進來一個控制項PriceValue來儲存價格資訊,儲存格式“行號1,價錢1,日期1|行號2,價錢2,日期2……”,後台要完成兩個動作,一個是拼出如此格式的字串,另外就是根據資料庫的價格資訊類比出價格輸入表單。要注意的就是,任何一個價格表單的改動都應該觸發一個用戶端指令碼,重新遍曆一下所有的價格表單,然後重寫PriceValue的資訊,這樣才能保證價格資訊即時儲存下來,才人會在頁面重新整理的時候丟失。

雖然上面講的很簡單,但實際開發的時候有許多細節需要考慮,比如一個簡單的刪除可能就會打亂規律,要作特殊處理,另外圖片選擇資訊使用者也要求保留(檔案選擇框一刷檔案選擇資訊就沒了,天經地義)……最後這一個頁面的後台編碼寫了近三千行,實在是很失敗,但使用者想要的都實現了,使用者卻滿意了……

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.