PDA

View Full Version : حرفه ای: اعتبار سنجی از طریق وب سرویس و jqury ajax



ali_mnkt
دوشنبه 02 دی 1392, 17:33 عصر
با سلام

دوستان من می خوام اطلاعات فرمم رو اعتبار سنجي كنم . به عنوان مثال فرض کنید می خوام ببینم در سیستمم اطلاعات نامم ذخیره شده یا نه اگر بود كه postback از کار بیفته و خطا بده . همه این کارا هم باید به صورت ajax انجام بشه

خوب برای این کار من یک webservice به صورت زیر نوشتم که کار بررسی وجود را انجام می ده




namespace NewsModule
{
/// <summary>
/// Summary description for WebService1
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[ScriptService]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{

[WebMethod()]
public string chechLetterFollow(string LReceivedCode)
{

//List<letterDetails.LetterDetailsClass> Details = new List<letterDetails.LetterDetailsClass>();
//letterDetails.LetterDetailsClass Ldetails = new letterDetails.LetterDetailsClass();

DataSet ds = new DataSet();
ds = DataLayer.letters.letters_checkfollow(LReceivedCod e);
if (ds.Tables[0].Rows.Count > 0)
{
//Ldetails.LId = ds.Tables[0].Rows[0]["LID"].ToString();
//Ldetails.LReceivedCode = ds.Tables[0].Rows[0]["LReceivedCode"].ToString();
//Details.Add(Ldetails);
return "Exist";
}

return "notExist";
}



خوب یک دکمه ای هم ایجاد کردم که با کلیک شدن اون باید وب سرویس فراخوانی شود




<asp:ImageButton ID="btnIRegisterLetter" runat="server" Height="40px" ImageUrl="~/images/letter/sabt-name.png"
OnClick="btnIRegisterLetter_Click" OnClientClick="if(validate()==false){return false;}"
Width="40px" ToolTip="ثبت نامه" ValidationGroup="RegisterValidate" />



و کد فراخوانی وب سرویس هم به این صورت نوشتم





<script type="text/javascript">
var status;
function validate() {



var checkletter;

if (document.getElementById('ctl00_ContentPlaceHolder 1_incomingControl1_txtFollow1').value != "") {

$.ajax({
type: "Get",
url: "../../RetriveDate.asmx/chechLetterFollow",
data: "LReceivedCode=" + document.getElementById('ctl00_ContentPlaceHolder1 _incomingControl1_txtFollow1').value, // the data in form-encoded format, ie as it would appear on a querystring
//contentType: "application/x-www-form-urlencoded; charset=UTF-8", // if you are using form encoding, this is default so you don't need to supply it
dataType: "text", // the data type we want back, so text. The data will come wrapped in xml
success: function (data) {


}
});


}


}


</script>



خوب مشكلم اينه كه داخل تابع success هیچ اگه هیچ مشکلی وجود نداشته باشه باید data رو برگردونه که خروجی وب سرویس هست حالا چطور باید بگم که اگه مقداری که مد نظر من نبود postback دکمه غیر فعال بشه ؟