﻿function getFieldText(s) {
	if (s == null)
		return '';
	else
		return s;
}

/// <summary>
/// Callback used when the populating service returns successfully
/// </summary>
/// <param name="result" type="Object" mayBeNull="">
/// The data returned from the Web service method call
/// </param>
/// <param name="userContext" type="Object">
/// The context information that was passed when the Web service method was invoked
/// </param>        
/// <param name="methodName" type="String">
/// The Web service method that was invoked
/// </param>
function succeededCallback(result, userContext, methodName) {
	for (c in userContext) {
		eval(userContext[c]);
//		document.getElementById(userContext[c].controlId).innerHTML = eval(userContext[c].valueExpress);
	}
}

/// <summary>
/// Callback used when the populating service fails
/// </summary>
/// <param name="webServiceError" type="Sys.Net.WebServiceError">
/// Web service error
/// </param>
/// <param name="userContext" type="Object">
/// The context information that was passed when the Web service method was invoked
/// </param>        
/// <param name="methodName" type="String">
/// The Web service method that was invoked
/// </param>
function failedCallback(webServiceError, userContext, methodName) {
    var error = webServiceError;
	var stackTrace = error.get_stackTrace();

	var message = error.get_message();

	var statusCode = error.get_statusCode();

	var exceptionType = error.get_exceptionType();

	var timedout = error.get_timedOut();

	var errorMessage =
		"Stack Trace: " +  stackTrace + "\n" +
		"Service Error: " + message + "\n" +
		"Status Code: " + statusCode + "\n" +
		"Exception Type: " + exceptionType + "\n" +
		"Timedout: " + timedout;

	var msg = document.createElement(
		"<div>" 
		+ "与服务器联接发生错误，请确认网络联接没有问题，然后再试一次。\n" 
		+ errorMessage 
		+ "</div>");

	document.body.insertBefore(msg);
}

function dataPortalAjax(servicePath, methodName, parameters, userContext) {
	Sys.Net.WebServiceProxy.invoke(servicePath, methodName, false, parameters, succeededCallback, failedCallback, userContext);
}
