PDA

View Full Version : سوال: عمل نکردن Ajax



forodo
سه شنبه 15 مهر 1393, 12:33 عصر
سلام
وقتی روی لینکی که با تگ a درست کردم کلیک می کنم صفحه رفرش می شه که نباید بشه.
کدها چون خیلی بود قرار ندادم.
کجاش ایراد داره؟

<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
کدهای سی شارپ و اچ تی ام ال
</ContentTemplate>
</asp:UpdatePanel>
</div>

forodo
سه شنبه 15 مهر 1393, 21:00 عصر
یه لیبل و یه دکمه گذاشتم داخل UpdatePanel و اجرا کردم درست کار کرد. نمی دونم چرا این درست کار نمی کنه.

ahmad156
سه شنبه 15 مهر 1393, 21:36 عصر
خب دوست عزیز لینک در واقع عمل Get رو انجام میده نه Post که UpdatePanel بخواد عمل AsynPostBack رو انجام بده یا نه.

forodo
سه شنبه 15 مهر 1393, 22:42 عصر
خب دوست عزیز لینک در واقع عمل Get رو انجام میده نه Post که UpdatePanel بخواد عمل AsynPostBack رو انجام بده یا نه.
متوجه نشدم.
باید چیکار کنم؟
فرق متد get و post رو می دونم ولی نمی دونم اینجا باید چیکار کنم.

ahmad156
چهارشنبه 16 مهر 1393, 00:16 صبح
دوست عزیز.UpdatePanel شما زمانی معنی میده که عمل فرم شما Post بشه یعنی یه فرم داشته باشین که method اون post باشه.بعد داخل اون فرم یه دکمه از نوع Submit .شما وقتی یه لینک توی صفحه تون میذارین اون لینک داره یه صفحه دیگه رو درخواست میکنه و عمل post ای انجام نمیشه

forodo
چهارشنبه 16 مهر 1393, 00:40 صبح
دوست عزیز.UpdatePanel شما زمانی معنی میده که عمل فرم شما Post بشه یعنی یه فرم داشته باشین که method اون post باشه.بعد داخل اون فرم یه دکمه از نوع Submit .شما وقتی یه لینک توی صفحه تون میذارین اون لینک داره یه صفحه دیگه رو درخواست میکنه و عمل post ای انجام نمیشه
یعنی هیچ راهی نداره که من بتونم با همون تگ a کار کنم؟
یعنی همه رو باید به linkbutton تغییر بدم؟
اونایی که باید روش کلیک کنم و عملیات ajax اتفاق بیافته این تگهای a هست که به این شکل قرار می گیره.
الان اگه به جای اینا LinkButton قرار بدم مشکلی پیش نمیاد؟
اینارو تو محیط Source نوشتم نه توی CodeBehind.
for (int i = counterPage; i >= 2; i--)
{
if (i == Convert.ToInt32(Request.QueryString["Page"]))
{
if (Request.QueryString["Type"] != null)
{
Response.Write("<a href=\"Main.aspx?Page=" + i + "&Type=" + Request.QueryString["Type"] + "\"><li style=\"background-color:#069;\">" + i + "</li></a>");
}
else
{
Response.Write("<a href=\"Main.aspx?Page=" + i + "\"><li style=\"background-color:#069;\">" + i + "</li></a>");
}

}
else
{
if (Request.QueryString["Type"] != null)
{
Response.Write("<a href=\"Main.aspx?Page=" + i + "&Type=" + Request.QueryString["Type"] + "\"><li>" + i + "</li></a>");
}
else
{
Response.Write("<a href=\"Main.aspx?Page=" + i + "\"><li>" + i + "</li></a>");
}
}
}

forodo
چهارشنبه 16 مهر 1393, 11:32 صبح
الان یه LinkButton داخل UpdatePanel قرار دادم ولی وقتی روش کلیک کردم باز صفحه رفرش می شه.

<asp:LinkButton runat="server" >LinkButton</asp:LinkButton>

forodo
چهارشنبه 16 مهر 1393, 13:06 عصر
با جی کوئری نوشتم ولی ارور می ده.
اون خط alert('error') نمایش داده می شه:

<script>
$(document).ready(function () {

$('#btnSubmit').click(function () {

var Subject = $('#txtSubject').val;


var SummaryOfTraining = $('#CKEditorControl1').val();

var TotalTraining = $('#CKEditorControl2').val();


$.ajax({

type: 'POST',

contentType: "application/json; charset=utf-8",

url: 'ManagerPage.Master/InsertDataToDatabase',

data: "{'Subject':'" + Subject + "','SummaryOfTraining':'" + SummaryOfTraining + "','TotalTraining':'" + TotalTraining + "'}",

async: false,

success: function (response) {


alert("Record saved successfully..!!");

},

error: function () {

alert("Error");

}

});

});

});
</script>

[WebMethod]
public static string InsertDataToDatabase(string Subject, string SummaryOfTraining, string TotalTraining)
{
SqlConnection con = new SqlConnection(System.Configuration.ConfigurationMa nager.ConnectionStrings["MyCon"].ConnectionString);
try
{
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandType = CommandType.Text;
com.CommandText = @"INSERT INTO tblTraining(Subject, SummaryOfTraining, TotalTraining)
VALUES(@Subject, @SummaryOfTraining, @TotalTraining)";
com.Parameters.AddWithValue("@Subject", Subject);
com.Parameters.AddWithValue("@SummaryOfTraining", SummaryOfTraining);
com.Parameters.AddWithValue("@TotalTraining", TotalTraining);

con.Open();
com.ExecuteNonQuery();
con.Close();

return "success";
}
catch (Exception)
{
return "fail";
}
finally
{
con.Close();
}
}

ارورش اینه:

<!DOCTYPE html>

<html>

<head>

<title>Unknown web method InsertDataToDatabase.<br>Parameter name: methodName</title>

<meta name="viewport" content="width=device-width" />

<style>

body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;}

p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}

b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}

H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }

H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }

pre {font-family:"Consolas","Lucida Console",Monospace;font-size:11pt;margin:0;padding:0.5em;line-height:14pt}

.marker {font-weight: bold; color: black;text-decoration: none;}

.version {color: gray;}

.error {margin-bottom: 10px;}

.expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }

@media screen and (max-width: 639px) {

pre { width: 440px; overflow: auto; white-space: pre-wrap; word-wrap: break-word; }

}

@media screen and (max-width: 479px) {

pre { width: 280px; }

}

</style>

</head>



<body bgcolor="white">



<span><H1>Server Error in '/' Application.<hr width=100% size=1 color=silver></H1>



<h2> <i>Unknown web method InsertDataToDatabase.<br>Parameter name: methodName</i> </h2></span>



<font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif ">



<b> Description: </b>An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.



<br><br>



<b> Exception Details: </b>System.ArgumentException: Unknown web method InsertDataToDatabase.<br>Parameter name: methodName<br><br>



<b>Source Error:</b> <br><br>



<table width=100% bgcolor="#ffffcc">

<tr>

<td>

<code>



An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.</code>



</td>

</tr>

</table>



<br>



<b>Stack Trace:</b> <br><br>



<table width=100% bgcolor="#ffffcc">

<tr>

<td>

<code><pre>



[ArgumentException: Unknown web method InsertDataToDatabase.

Parameter name: methodName]

System.Web.Script.Services.WebServiceData.GetMetho dData(String methodName) +216

System.Web.Handlers.ScriptModule.OnPostAcquireRequ estState(Object sender, EventArgs eventArgs) +309

System.Web.SyncEventExecutionStep.System.Web.HttpA pplication.IExecutionStep.Execute() +136

System.Web.HttpApplication.ExecuteStep(IExecutionS tep step, Boolean&amp; completedSynchronously) +69

</pre></code>



</td>

</tr>

</table>



<br>



<hr width=100% size=1 color=silver>



<b>Version Information:</b>&nbsp;Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34009



</font>



</body>

</html>

<!--

[ArgumentException]: Unknown web method InsertDataToDatabase.

Parameter name: methodName

at System.Web.Script.Services.WebServiceData.GetMetho dData(String methodName)

at System.Web.Handlers.ScriptModule.OnPostAcquireRequ estState(Object sender, EventArgs eventArgs)

at System.Web.HttpApplication.SyncEventExecutionStep. System.Web.HttpApplication.IExecutionStep.Execute( )

at System.Web.HttpApplication.ExecuteStep(IExecutionS tep step, Boolean& completedSynchronously)

-->

forodo
شنبه 19 مهر 1393, 15:23 عصر
با توجه به کدایی که در پست 6 نوشتم چیکار می تونم انجام بدم
حتی برای تگهای a نوستم runat="server" ولی بازم نشد.
لطفاً بگید از چه چیزی می تونم استفاده کنم؟

ahmad156
شنبه 19 مهر 1393, 15:42 عصر
دوست عزیز من دلیل اصرار شما رو مبنی بر استفاده از لینک نمیدونم؟؟؟!!!
شما باید حتماً از LinkButton استفاده کنین اگر خیلی مایلین میتونین Style بدین به LinkButton که شبیه لینک به نظر برسه