2012年7月31日

.NET Postback 流程

Page_Load(object sender, EventArgs e) {
    if (Page.IsPostBack) {
        /* step 1 */
    }
    else {
        /* step 4 */
    }
    /* step 5 */
    ...
    /* step 2 6 */
}
aspResultPager_Init(object sender, EventArgs e) {
    /* step 3 */
}

Fast search error:unexpected token

fast search的 query中若有空白字元, 直接塞進 QueryString就會出現 [error:unexpected token]的訊息

解決方式:
在 serchview.Search(...)之前, 先把 query做 and變更的處理
ex: QueryString="web android" → QueryString="and(web,android)"

// process when query contains space char
if (_customizeQuery.Contains(" ")) 
{
    string[] splitString = _customizeQuery.Split(' ');
    _query.QueryString 
       = string.Format("and({0})", string.Join(",", splitString));
}
_searchView = _searchFactory.GetSearchView(config.collection);
_searchResult = _searchView.Search(_query);

2012年7月26日

SQL inner join v.s. exist

exist 是 left去比對 right, 找到符合的就回傳 (true)
inner join是兩邊全部 join後, 再去找符合的

#.exist在處理上遇到 null值可能會有問題

2012年7月25日

Report Builder not showing default value as select all

先看一下 query撈出來的資料是不是有 null或 blank""的值

如果有的話就會產生此情況

可以在 general勾選 allow blank value ("")來解決
或在 query裡先濾掉

where [field]<>'' or [field] is not null



reference:
My MDX SSRS report is not showing default value as 『Select All' (SSRS 2008R2)

2012年7月24日

Umbraco root element is missing

scripting files

後台在抓元素( ex: Model.keyImage)時
可以用 Model.HasProperty("name") 來測有沒有這個元素存在

Model.keyImage 回傳值為 umbraco.MacroEngines.DynamicXml型態
(Model.keyImage.InnerText)
沒有值的時候為 string, 長度為 0
(Model.keyImage.Length>0)


最快的方法還是直接用 try catch來忽略掉抓不到元素的錯誤訊息
並賦予 bool型態的 flag以 false, 方便後續的程式碼處理

2012年7月23日

趨勢 Note #005

Main: Slide Show

1. ===========================================

RepeatableCustomContentPrevalueEditor.cs
→ private DropDownList CreateUmbracoDataTypesList(string idSuffix) { }
→ → ConfigHelper.cs
→ → → DefaultDataType
string[] strArray = new string[] { "EAD69342-F06D-4253-83AC-28000225583B", "158AA029-24ED-4948-939E-C3DA209E5FBA", "C2D6894B-E788-4425-BCF2-308568E3D38B" };<

這三組是 data type的代碼
因為 safeqa和 cspqa的 textstring的 uid不同, 所以再剛搬到 safeqa時, Slide Image Picker底下找不到 textstring的選項

2. ===========================================

Slide Show 的箭頭符號是塞在另一個 css檔來設定 .slide-prev, .slide-next的樣式並指定圖片
害我看 cshtml內的設定看半天都不知道為什麼可以做出箭頭的效果
幹!!
<style type="text/css">
  .slide-prev, .slide-next { 
  position:absolute;
  background-image: url(/media/assets/apt/arrow.png);
  background-repeat: no-repeat;
  background-position: 0 0;
  display: block;
  height: 45px;
  width: 27px;
  padding: 0px 10px;
  z-index:9999;
  opacity:0.7;
  cursor:pointer;
}
.slide-next {
  background-position: 0 -46px;
}
</style>

2012年7月18日

jQuery .keyup() 即時偵測輸入字串

$(function () {
    $("#aspQueryString").keyup(function () {
        if ($(this).attr("value").length > 100) { 
        }
    });
});

2012年7月17日

ListView 自訂DataSource Eval("...") 找不到項目

ex:
DataBinding: 'BA.JPCONS.Search.Page.SearchResult+NavigatorData' 沒有包含名為 'name' 的屬性。

ListView用自己訂的 class去當作 DataSource
變數定義後面須加上  { get; set; } 而不是分號 ;

2012年7月16日

趨勢 Note #004

開發獨立原件時
最好先確認開發環境有一致 (ex: .NET Framework版本)
免得寫好的東西合併到專案底下卻不能用了

compile後, dll(參考)從專案裡神隱

把 esp-searchapi.dll加入專案參考後
在物件瀏覽器是看得到 api的

compile後, 物件瀏覽器裡的 api就消失了
但是 bin裡面還是可以看得到有參考該 dll

解決:
專案屬性中, 把目標 Framwork從 .NET Framework 4.0 Client Profile改成 .NET Framework 4.0

2012年7月13日

加入 web服務

寫好 web service後, 我竟然還在別的專案裡用 HttpWebRequest, 傳 url來獲得回傳值, 超笨的, 不過至少是學了一下 HttpWebRequest怎麼用

在專案中, 用加入 web服務(填入 web service的 url), 不用 using, 可以直接把 web service當作型別來宣告使用
ex:
trendmicro.safeqa.BetaPortalUrls4FAST _result = new trendmicro.safeqa.BetaPortalUrls4FAST();<

2012年7月11日

加入服務參考(Service References)錯誤


加入服務參考時若出現"嘗試尋找位於 ... 的服務時發生錯誤"

可能是
1. IIS處沒加入站台
2. 要先建置/發行

7/12新增:
BA.JPCONS內沒有加入服務參考, 直接發行後佈版, 直接可以使用

2012年7月10日

趨勢 Note #000

New Tech
  • Umbraco 建置(x), 開發(x), 使用(12%)
  • Web Service
  • FAST
  • C# Console
  • HttpWebRequest
  • xpath (xml)
  • jQuery Cycle

Review
  • jqGrid
  • Xml

IIS加入站台並更改應用集區

IIS 加入站台
  1. IIS → 新增網站
  2. 選擇實體路徑
  3. 填入站台名稱、本機名稱 (localhost)

更改應用集區為 ASP.NET 4.0

  1. 網站上按右鍵 → 管理網站 → 進階設定
  2. 應用程式集區 → 選 ASP.NET v4.0

Umbraco using NodeFactory

using presentation.nodeFactory;
using umbraco.NodeFactory;

用到 Node型態時,若引用 umbraco.NodeFactory會導致以下錯誤:
型別 'umbraco.interfaces.INode' 是定義在未參考的組件中。您必須加入參考至組件 'interfaces, Version=1.0.4085.20549, Culture=neutral, PublicKeyToken=null'

也會導致無法將該 web service加入服務參考

需要改用 presentation.nodeFactory

2012年7月9日

趨勢 Note #003


YC還說等另一個人回來
會希望大家輪流看別人的 code
算是有 code review的效果
也可以避免會的人請假要掛一起掛的情況

FAST search engine

今天 YC丟了個新工作給我
要我研究一下 FAST這個搜尋引擎
好把 betaportal的網頁都塞進搜尋引擎裡

page, node {url, title, content, (meta-tag)}
 => FAST doc.fields(url, title, content)
=> web api => FAST server

不要 hardcore, 要能調整權重 (藉 xml吧)

擴充性, ex: 可加入別的 fields

最大的困難應該是如何列出所有的 node

補:
寫一個 web service放在 umbraco site裡面
再寫一個 console透過該 web service去讀取 umbraco的資料

聽到要寫 web service就覺得胃痛, 總覺得是很難的東西
google查了一下, 發現沒有想像中的難 ~
+++ Web Service 入門與觀念 / ASP.NET的五篇文章&範例 


建立 web service
加入參考 umbraco.dll (in folder External)
using umbraco.presentation.Factory; // or umbraco.NodeFactory

2012年7月6日

趨勢 Note #002

這裡的系統是怎麼架的才能有不能在本機端 debug
只能靠寫 log來觀察程式運作的狀況?

搞得這麼不方便是基於什麼鬼考量 
為什麼? 為什麼? 為什麼?

도대체 왜? 왜? 왜?


沒辦法隨意更改程式內容然後即時得到結果
太痛苦了

2012年7月5日

該如何評估需要多久才能上手一個工作(任務)

每次接觸一個新的挑戰

總是會被上面問及:需要多久?

重點是,我不知道如何評估

如果是接管系統,系統的大小

如果是新的專案,專案的 ...

以什麼為標竿來評估自己的能力

又或者,僅是回答對方想得到的答案?

2012年7月4日

趨勢 Note #001

設定 IIS站台

開啟專案資料夾 ISUR權限

不用專案建置,用發行

佈版:1. dll檔案 2. usercontorls/ascx ashx aspx ... etc

2012年7月2日

Code Review

輸入文字有沒有做 html encode或用:
 jQjuery
$("<option>").text(xxx.val(xxx));

search->match
javascript
寫在 head的東西
會比網頁物件先 or 慢載入?
預防此情況就把 script寫在 ready裡面