none
TextBox、DDL、UC... 有辦法最後全轉成Lable物件顯示嗎 ? RRS feed

  • 問題

  • 在弄一個公告系統,因為想統一未來好改的關係,所以把『公告內容』的區塊做成一個 UC_S

    ※『公告內容』就是裡面要填寫, 公告類別、講題、內文、地點、演講者.....等.

    這樣的好處就是

    維護頁面.aspx
    |
    UC_S

    一般使用者頁面.aspx
    |
    UC_S

    可以共用內容,我只要做做手腳隱藏 Panel (新增、修改、刪除) 就好了~

    但是當在『維護頁面.aspx'看到的是 TextBox、DDL...等,很正常


    可是在『一般使用者頁面.aspx'雖然被我將整個 Panel,鎖起來了~

    但是看到TextBox、DDL..... 等,就是沒有單存看到Lable 好看,是否想辦法將他們轉成Lable物件 ?

    還是這個方法不好啊 @@ ?

    個人覺得還不錯~ 不用重複的東西做2次

    • 已編輯 天氣 2015年1月5日 上午 06:39
    2015年1月5日 上午 06:37

解答

所有回覆

  • 個人覺得這做法不是很好
    1.後端的介面不見得跟前端會一樣,有些欄位不見得後端會全部開放給前端使用者看到,做成前/後端共用的UC就變成很多東西要藏來藏去的
    2.UI跟邏輯分開使用,日後要變就比較輕鬆

    您的情境,我會這麼做
    不管用不用UC,我會把前後端分開專用,然後取資料的邏輯部份弄成共用的類別,把UI跟邏輯切開來



    微軟免費線上課程

    HTML5 & JavaScript程式開發實戰(MyBook)

    開發ASP.NET您要瞭解的基楚

    http://www.dotblogs.com.tw/ian (MyBlog)

    2015年1月5日 上午 07:32
  • 個人覺得這做法不是很好
    1.後端的介面不見得跟前端會一樣,有些欄位不見得後端會全部開放給前端使用者看到,做成前/後端共用的UC就變成很多東西要藏來藏去的
    2.UI跟邏輯分開使用,日後要變就比較輕鬆

    您的情境,我會這麼做
    不管用不用UC,我會把前後端分開專用,然後取資料的邏輯部份弄成共用的類別,把UI跟邏輯切開來



    微軟免費線上課程

    HTML5 & JavaScript程式開發實戰(MyBook)

    開發ASP.NET您要瞭解的基楚

    http://www.dotblogs.com.tw/ian (MyBlog)

    Hi No. 18~~~

    謝謝你的分享^^

    1. 因為 我已經把要藏的東西有用Div做分類顯示了,然後有用 panel 分開了,所以我只要藏Panel即可.

    為了怕未來什麼東西又要藏,我有設計一個權限Table

    角色別, 功能頁名稱, 禁用功能(Enable), 無法看到的功能 (Visible)

    0000, a.aspx, btnAdd; pnlInfobtnDel

    0001, a.aspx, , ,

    所以任何畫面上的物件,都可以在在該頁面載入時利用

    .GetType().GetProperty("Visible");,由設定檔決定什麼東西不要給它。



    2.再來這個功能好像沒什麼邏輯要,一般瀏覽者、發文者 & 管理者,分開的@@

    我才想說這樣做








    • 已編輯 天氣 2015年1月5日 上午 08:09
    2015年1月5日 上午 08:02
  • 您誤會我說的邏輯了

    我指的是資料怎麼來的邏輯跟UI怎麼呈現是二個不同的content

    通常我不會想把它綁死 , 所以UI不用去管我資料怎麼生 , 它只管要不要的到

    而資料來源也不用管跟要的人想怎麼呈現UI , 那是UI的事情

    另外您的問題 , 我看起來是同一個UC元件 , 想在不同情境下呈現不同的元素 , 管理介面是Textbox之類的 , 而View的情境則是想要單純的Label 

    , 就算開個屬性去指定它要用什麼元件呈現 , 其實也是等同於你分開寫二個UC的意思


    微軟免費線上課程

    HTML5 & JavaScript程式開發實戰(MyBook)

    開發ASP.NET您要瞭解的基楚

    http://www.dotblogs.com.tw/ian (MyBlog)


    • 已編輯 No.18MVP 2015年1月5日 上午 09:47
    2015年1月5日 上午 09:43
  • 您誤會我說的邏輯了

    我指的是資料怎麼來的邏輯跟UI怎麼呈現是二個不同的content

    通常我不會想把它綁死 , 所以UI不用去管我資料怎麼生 , 它只管要不要的到

    而資料來源也不用管跟要的人想怎麼呈現UI , 那是UI的事情

    另外您的問題 , 我看起來是同一個UC元件 , 想在不同情境下呈現不同的元素 , 管理介面是Textbox之類的 , 而View的情境則是想要單純的Label 

    , 就算開個屬性去指定它要用什麼元件呈現 , 其實也是等同於你分開寫二個UC的意思


    微軟免費線上課程

    HTML5 & JavaScript程式開發實戰(MyBook)

    開發ASP.NET您要瞭解的基楚

    http://www.dotblogs.com.tw/ian (MyBlog)


    資料喔

    我都統一在一個_handler.cs處理

    所有頁面 (.cs or .ascx) 只會宣告 Class 或是 List<T>來接資料,這樣每個頁面的Code 也幾乎很乾淨

    結果也是做了一個Class 專門在放,新增, 修改, 刪除,成功 or 失敗的結果


    dateType → 0 1 3 新增 修改 刪除

    myInfo dbInfo = _handler.Handler_AAAAAAA(dateType, tmpClass);

    Div_Message("Info", dbInfo.myMessage);

    2015年1月5日 上午 09:54
  • 所以我才覺得說 你弄成同一個UC 裡面放了不同區塊來隱藏 , 其實等同於做二個UC(分別專屬後端和前端)的意思是一樣的

    因為您想要它在前端是用Label去呈現


    微軟免費線上課程

    HTML5 & JavaScript程式開發實戰(MyBook)

    開發ASP.NET您要瞭解的基楚

    http://www.dotblogs.com.tw/ian (MyBlog)

    • 已標示為解答 天氣 2015年8月21日 上午 06:03
    2015年1月5日 下午 02:00
  • 該做什麼就做什麼,不要耍懶。

    否則以後光是技術債,就夠你還的了。


    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2015年1月5日 下午 02:05
    版主