2017年10月10日 星期二

mono在.net4.0中checkboxlist狀態無法正常呈現的解決方式

如果有使用checkboxlist在mono中會發現一是裡面的值無法正常儲存,可參考以下解法:


解法1:

在web.config中的<system.web>區塊中加上此行

<pages controlRenderingCompatibilityVersion="3.5" />


註.但有可能影響到其他有用到4.0以上的元件呈現,例如:MenuItem



解法2:

在Page_PreRender中加上以下函式


protected void Page_PreRender(object sender, EventArgs e)
        {
            setCheckBoxStates([你的checkboxlist名稱]);
        }



private void setCheckBoxStates(CheckBoxList cbl)
        {
            if (IsPostBack)
            {
                string cblFormID = cbl.ClientID.Replace("_", "$");
                int i = 0;
                foreach (var item in cbl.Items)
                {
                    string itemSelected = Request.Form[cblFormID + "$" + i];
                    if (itemSelected != null && itemSelected != String.Empty)
                        ((ListItem)item).Selected = true;
                    i++;
                }
            }
        }


這只能保持你的選取狀態是正常的,但選取的值如果用一般寫法仍會無法儲存,所以同理改寫成以下方式


 string calids = "";
                string cblFormID = [你的checkboxlist名稱].ClientID.Replace("_", "$");
                int i = 0;
                foreach (var item in [你的checkboxlist名稱].Items)
                {
                    string itemSelected = Request.Form[cblFormID + "$" + i];
                    if (itemSelected != null && itemSelected != String.Empty)
                        if (calids == "")
                        {
                            calids = itemSelected;
                        }
                        else
                        {
                            calids += "," + itemSelected;
                        }
                    i++;
                }


註.checkboxlist的命名規則不可包含有「_」底線,不然會一樣被過濾成$導致無法正常運作


2017年9月2日 星期六

在ubuntu分享印表機給windows使用


先在ubuntu 中安裝印表機驅動程式


接著進行command模式安裝

sudo apt-get install samba

sudo apt-get install cups


然後編輯smb.conf

sudo vim /etc/samba/smb.conf

在【print】區塊增加

browseable = yes

guest ok =yes

















重啟samba 

sudo service smbd restart


檢查是否可以登入CUPS網站 http://localhost:631



再來在windows中新增印表機,例如我的主機ip是192.168.1.2就是

http://192.168.1.2:631/printers/印表機名稱







接著要安裝印表機的驅動程式.inf檔(請上官網下載windows版的驅動程式,然後解壓縮或直接安裝)
























最後再印一下測試頁,如果印表機有動就沒問題了!







2017年3月16日 星期四

升級Ubuntu核心


執行更新套件時,出現安裝有問題,研究半天好像是核心有問題

sudo apt-get update

sudo apt-get dist-upgrade











2017年2月18日 星期六

隨機產生六碼亂數驗証碼


mssql

Select abs(checksum(NewId()) % 999999)

asp.net

 Dim confirm_password As System.String = Math.Round((CDbl(CDbl((999999 * Rnd())))), 0).ToString

2017年2月9日 星期四

在Ubuntu 建置 mod-mono-server

【建置Apache2】


1.安裝apache2

sudo apt-get update

sudo apt-get install apache2

2.指定自訂的網站位置

sudo vim /etc/apache2/apache2.conf

複製<Directory /var/www/ >的區塊將/var/www/變成你的網站路徑


【備分設定檔】

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/site-available/[你的網站名稱].conf



2017年1月15日 星期日

查詢TABLE中TRIGGER和移除


原本要使用MariaDB內建函式來產生UUID,後來覺得不妥,所以要移除

=====================================================

REATE TABLE USER(
USER_ID CHAR(36) NOT NULL DEFAULT 0,
EMAIL VARCHAR(100) NOT NULL UNIQUE,
PWD VARCHAR(200),
NAME VARCHAR(30),
NICK_NAME VARCHAR(50),
SEX CHAR(1),
HEIGHT DECIMAL(5,1),
WEIGHT DECIMAL(5,1),
BIRTHDAY DATE,
AGE INT,
HOME_PHONE VARCHAR(30),
MOBILE VARCHAR(30),
EMAIL2 VARCHAR(100) NOT NULL DEFAULT '',
PERSONAL_KEY VARCHAR(100) NOT NULL,
PRIMARY KEY (USER_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;





CREATE TRIGGER TRIG_USER
  BEFORE INSERT ON USER
  FOR EACH ROW
  SET new.USER_ID = uuid();


==================================================



查詢TABLE中的TRIGGER

SHOW TRIGGERS LIKE 'USER';




移除TRIGGER

DROP TRIGGER IF EXISTS USER;






2017年1月6日 星期五

設定mariadb server 建立資料庫時預設使用utf8mb4格式

修改 /etc/mysql/my.cnf

sudo vim /etc/mysql/my.cnf

在[mysqld]中加上此行

=============================

[mysqld]

character-set-server=utf8mb4

collation-server=utf8mb4_general_ci

 =============================

熱門文章