本文章已移至分站點部落-程式宅急便
http://www.dotblogs.com.tw/kyleshen/archive/2013/04/17/101722.aspx
ASP.NET、C#、MVC、Angular、jQuery…Sharing what I Know !
Share your knowledge. It’s a way to achieve immortality.
My Website:http://kyleshen.com
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$(function () {
$('#btn_ajax').click(function () {
$('#loading').show(); //開始Ajax,顯示讀取中圖片
$.ajax({
type: 'POST',
url: 'AjaxHandle.aspx',
data: 'id=1', //發送參數
success: function (data) {
console.log(data); //輸出結果
$('#div_result').html(data); //將結果呈現在Div裡
$('#loading').hide(); //結束Ajax..關閉讀取中圖片
},
error: function (xhr, ajaxOptions, thrownError) {
$("body").append(xhr.status);
$("body").append(xhr.responseText);
alert("Ajax發生錯誤!!");
}
});
});
});
</script>
</head>
<body>
<input type="button" id="btn_ajax" value="StartAjax" />
<span id="loading" style="display:none;">Loading....</span>
<div id="div_result" >
</div>
</body>
</html>
protected void Page_Load(object sender, EventArgs e)
{
string ID = Request.Form["ID"]; //接受傳入的參數
Response.Write("Hello ID Value : " + ID);
}
protected void Page_Load(object sender, EventArgs e)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
List<UserData> _list = new List<UserData>();
//加入5筆假資料
for (int i = 1; i <= 5; i++)
{
UserData _data = new UserData();
_data.id = i;
_data.name = "測試" + i;
_list.Add(_data);
}
var retunJson = serializer.Serialize(_list);
Response.Write(retunJson);
Response.End();
}
public class UserData
{
public int id { get; set; }
public string name { get; set; }
}
success: function (data) {
console.log(data); //輸出結果
$('#div_result').html(data); //將結果呈現在Div裡
var array = $.parseJSON(data);
//迴圈取出資料
$.each(array, function (i, item) {
var content = "id: " + item.id + "; name: " + item.name;
var li = "<li>" + content + "</li>";
$('#div_result').append(li);
});
$('#loading').hide(); //結束Ajax..關閉讀取中圖片
},
無意間發現一個挺實用的網站-overapi.com
此網站整合了很多程式語言的API查詢,如Javascript、Jquery、CSS、Node.js…
我自己常用的當然就是Web相關的
各API也幫你分類好了,非常一目瞭然!
以Jquery為例,點選之後就幫你導向官網
有這種彿心來的網站真的省了不少時間!!
Blog停擺好久!!!原因為前一份工作專案較忙,後來又決定踏入人生第一次轉職,
故一直到最近面試階段才有比較空閒的時間,離題離很大,總之希望Blog接下來能好好經營,
該多花點時間Study之前想碰的新技術了。當然這過程還是有將一些程式記錄在Evernote,
今天要分享在前端直接設定列印邊界的程式,之前的需求是列印的數據要直接印在紙本報表上
當然邊界的設定就很重要,故在列印前就用程式去指定
以免使用者去動過設定,格式整個就會跑掉。
Survey過程中,意外發現兩個套件(IE Only),紀錄一下:
ScriptX為一個前端的套件,透過此套件可以輕易的用Script去操控印表機設定
只要下載套件,將smax.cab加入網站,再於Html指定以下Code:
就可輕易的去操控印表機設定,免費版就有以下功能了,還可設定不跳出瀏覽直接Print:
當然最後還是沒有採用此Solutions,因在localhost跑得好好的,
未注意到如要放至Server上會無法使用,因需購買License,如是用免費版必須將Domain address寄給作者申請。
另一個套件叫Pazu,是大陸四方在線所開發的套件,他們的網站已有詳細的中文Sample Code了
一樣你可在localhost試用,如覺得不錯用要放在Server的話可再跟作者申請,再這就不詳細說明了
以上兩個套件完了半天都才發現要申請,故最後還是放棄了決定自己Survey,
其實要修改列印邊界,不外乎就是用到IE的ActiveX,故以上兩個套件也是IE Only
邊界設定都存在於Client端的登錄檔,故可用以下程式去修改:
var path = "HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";
var _Reg = new ActiveXObject("WScript.Shell");
_Reg.RegWrite(path+"header",""); //頁首
_Reg.RegWrite(path+"footer",""); //頁尾
_Reg.RegWrite(path+"margin_bottom",parseFloat(10.0)/10/2.54); //登錄檔的單位為公吋
_Reg.RegWrite(path+"margin_left",parseFloat(10.0)/10/2.54);
_Reg.RegWrite(path+"margin_right",parseFloat(10.0)/10/2.54);
_Reg.RegWrite(path+"margin_top,parseFloat(10.0)/10/2.54);
因使用到ActiveX,故IE瀏覽器設定上需將此區域加入信任,
或至IE->網頁網路選項,將ActiveX調為啟用或提示:
如此在列印之前就能去將瀏覽器的邊界列印設定改掉~
但後來發現即使邊界設定一樣…不同印表機印出的結果也不一樣…
這就是另一段故事了…我必須針對不同印表機去測試出邊界數據來解決….T_____T