1
私は、クリックするとクライアント側とサーバー側のコードを実行するASP.Net-Buttonを持っています。 特定の条件下では、後者の実行を防止する必要があります。Webサービス(jQuery、ASP.Net)から返されたデータを使用します。
<asp:LinkButton OnClientClick="if(CheckItems() == false) return false;" runat="server"
ID="Button" onclick="Button_Click">Insert</asp:LinkButton>
CheckItemsメソッドは、Webサービスを呼び出します。 Webサービスからの応答が "DataFound"の場合、CheckItemsメソッドはfalseを返す必要があります。
function CheckItems() {
PageMethods.CheckItems($('#<%= txtField.ClientID %>').val(), function(response) {
if (response == "DataFound") {
alert("The text you entered does already exist.");
return false;
}
});
}
このコードでは、CheckItemsはfalseを返しません。これはどのように達成できますか?
ウェブ-方法:
[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();
}
}
PageMethod 'CheckItems'を表示してください – naveen