2012年11月14日 星期三

透過jQuery 呼叫webservice 取得datatable內容

專案參考Newtonsoft.Json.dll

server
====
[WebMethod]
[System.Web.Script.Services.ScriptMethod]
public string GetScheduledActivity(string id)
{
DataTable dt = new DataTable();
...
return JsonConvert.SerializeObject(dt, Formatting.Indented);
}

client
====
 $.ajax({
                type: "POST",
                url: "webservice1.asmx/GetScheduledActivity",
                contentType: "application/json; charset=utf-8",
                data: "{'id':'" + id + "'}",
                dataType: "json",
                success: function (jsonObj) {
                    var objdata = $.parseJSON(jsonObj.d);
                    // 只有一筆資料的用法
                    // objdata[0].欄位名稱
                    // 多筆資料的用法
                    $.each(objdata, function (i, val) {
                    // val.欄位名稱
                    });
                }
            });  

解決事件函數搭配資料繫結時單引號及雙引號混合所引發的問題

外圍用單引號,裡面的雙引號字元加上反斜線,如
onclick='<%#Eval("id","設定排定活動相關選項(\"{0}\");return false;")%>'

2012年11月8日 星期四

server 事件未觸發?

使用AjaxControlToolkit CascadingDropDown之類或其他非postback方式動態改變control 內容,需加入 EnableEventValidation="false" 於 <%@ Page ,以避免 server 誤認資料被竄改而拒絕執行事件函數

Entity Framework 建立新物件並儲存後馬上取得關聯資料

使用 CreateProxy 建立物件,不要直接 new var newmodel = _contextXXX.CreateProxy<yyy>(); ... _contextXXX.yyy.Add(newmodel); await _contextXXX.SaveC...