SharePoint 2007에서 사용하고있는 사용자 지정 새 항목 양식이 있습니다. 내가 원하는 것은 사용자가 자산 ID를 입력하고 필드를 떠나면 ajax 쿼리는 해당 저작물 ID가 사용 가능한지 확인합니다.SharePoint에서 JQuery AJAX 호출 사용
내가 돌려받을 모든 내부 서버 오류이며, IIS는 기록을 500
의 상태 코드를 기록하지만 SharePoint의 동일한 코드를 사용하는 경우, 정상적인 .NET 웹 applicaiton에 다음 코드를 성공적으로 사용했습니다 뒤에 새로운 자산 형태로JQuery와는
$(document).ready(function() {
$('#ctl00_PlaceHolderMain_newAsset_assetId').blur(function() {
assetId = $(this).val();
if (assetId.length >= 3) {
$.ajax({
type: "POST",
url: "checkAsset.aspx/AssetIdAvailable",
data: "{'assetId':'" + assetId + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(message) {
if (message.d != true) {
//$('#ctl00_PlaceHolderMain_saveNew').attr('disabled', 'disabled');
alert('This asset id is available');
}
else {
alert('This asset id is NOT available');
//$('#ctl00_PlaceHolderMain_saveNew').removeAttr('disabled');
}
},
error:function (xhr, ajaxOptions, thrownError){
alert(xhr.statusText);
}
});
}
});
});
코드
public class CheckAssetAvailable : Page
{
[WebMethod]
public static bool AssetIdAvailable(string assetId)
{
int recCount = 0;
bool available = false;
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ICTAssetDb"].ConnectionString);
SqlCommand comm = new SqlCommand("usp_IsAssetIdAvailable", conn);
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.Add("@AssetId", SqlDbType.NVarChar).Value = assetId;
conn.Open();
recCount = int.Parse(comm.ExecuteScalar().ToString());
if (recCount == 0)
{
available = true;
}
comm.Dispose();
conn.Close();
conn.Dispose();
return available;
}
}