J'ai un bouton ASP.Net qui, lorsqu'il est cliqué, exécute le côté client et le code côté serveur. Dans certaines conditions, l'exécution de ce dernier doit être empêchée.Utiliser les données renvoyées par le service Web (jQuery, ASP.Net)
<asp:LinkButton OnClientClick="if(CheckItems() == false) return false;" runat="server"
ID="Button" onclick="Button_Click">Insert</asp:LinkButton>
La méthode CheckItems appelle un service Web. Si la réponse du service Web est "DataFound", la méthode CheckItems doit renvoyer false.
function CheckItems() {
PageMethods.CheckItems($('#<%= txtField.ClientID %>').val(), function(response) {
if (response == "DataFound") {
alert("The text you entered does already exist.");
return false;
}
});
}
Avec ce code, CheckItems ne retourne pas faux. Comment cela peut il etre accompli?
La méthode web:
[WebMethod]
public static string CheckItems(string name)
{
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["CS"].ConnectionString);
try
{
conn.Open();
var selectCommand = conn.CreateCommand();
selectCommand.CommandText = @"SELECT COUNT(*) FROM [Table] WHERE Name = @Name";
selectCommand.Parameters.Add(new SqlParameter("Name", name));
int results = (int)selectCommand.ExecuteScalar();
if (results > 0)
return "DataFound";
else
return "NoDataFound";
}
finally
{
conn.Close();
}
}
s'il vous plaît afficher le PageMode 'CheckItems' – naveen