2016年6月29日 星期三

讀取GoogleSheet資料,並透過範本排版

讀取Googe Sheet的JSON資料,並透過JQuery.tmpl範本來進行排版。

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src='http://web2.systemlead.com/iticket/scripts/jquery.tmpl.js'></script>
<script id="myTemplate" type="text/x-jquery-tmpl">
<li class='product-div-wrap>
<div class='product-div'>${getColumData($data,'相關連結')} ${getColumData($data,'專案名稱')}</div>
</li>
</script>
<script>
$(function(){
});
function showsheetfeedcontent(data){
try{
$('#myTemplate').tmpl(data.feed.entry, {
getTags: function (separator) {
return this.data.tags.join(separator);
}
}).appendTo($('#portfoliolist'));
}
catch(err){alert(err);}
}
function getColumData(item,colName)
{
var result='nodata';
var searchStr = 'gsx$'+colName;
$.each(item, function (ii, iitem) {
if (ii.indexOf(searchStr ) > -1)
result= iitem.$t;
});
return result;
}
</script>
<div id='portfoliolist'>
</div>
<!--google表單統計-->
<script type="text/javascript" src="https://spreadsheets.google.com/feeds/list/1cRGyaNQq0mUlSgTRmWKEXeFRID_tmATEe28h0Tno2cY/od6/public/full?alt=json-in-script&amp;callback=showsheetfeedcontent"></script>

結果

補充:Google Sheet須發佈到網路,才可以使用JSON。

snip_20160629174502

2016年6月28日 星期二

2016年6月12日 星期日

[筆記]asp.net postback後JQuery註冊事件失效

Asp.NET中,postback後會導致,JQuery註冊的事件失效。

參考

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script type="text/javascript" language="javascript">
//postback,jquery事件會失效
//重新註冊按鈕事件
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function EndRequestHandler(sender, args)
{
initailEvent();
}
$(function(){
initailEvent();
});
//重新註冊事件
function initailEvent(){
$('#btnSend').click(function(){
alert('OK');
});
}
</script>
<input id='btnSend' type='button' value='Send' />

[筆記]asp.net 防止double click

add_beginRequest事件會發生在請求之前,以下面例子,
當發生postback時,會先把觸發postback事件的物件(如按鈕)隱藏,
之後在畫面上面寫入【作業處理中,請稍候...】字樣,
之後執行完postback後要處理的功能後,畫面就會刷新還原。

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script type="text/javascript" language="javascript">
//postback,先處理按鈕
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
function BeginRequestHandler(sender, args)
{
var oControl = args.get_postBackElement();
$(oControl).hide();
$('#sMsg').html('作業處理中,請稍候...');
}
</script>
<span id='sMsg'></span>

2016年6月6日 星期一

[筆記]動態載入js

var apiurl = ‘abc.js';
var jsFile = document.createElement("script");
jsFile.setAttribute("type","text/javascript");
jsFile.setAttribute("src", apiurl);
document.getElementsByTagName("head")[0].appendChild(jsFile);