我是asp.net的新手。我正在创建一个简单的鞋店计费管理系统。我想知道如何激活文本框验证事件。就像我们在Windows应用程序文本框中验证事件一样。我的鞋子里丢了鞋子。表ShoseCode和ShoseDesc中有两列。当我在txt_ShoseCode中输入ShoseCode并且ShoseCode列中已存在此ShoseCode时。所以这个txt_ShoseCode从数据库中检索信息。或者,如果这个无法检索,那么只显示“This Shoes Code already exists”之类的消息或类似的内容。
我正在使用asp:Panel(ModalPopupExtender)。因为AutoPostBack =" True"在txt_ShoseCode中,当我触发txt_ShoseCode_TextChanged事件时,在txt_ShoseCode中删除该值。而且我也不知道如何使用javascript或jquery。
先谢谢
'
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Untitled Page</title>
<script type="text/javascript">
function Display(ShoseCode) {
alert(ShoseCode + ':::ShoseCode');
if (alert) {
window.location = 'WebForm1.aspx';
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<br />
<asp:Label ID="Labelcheck"
Text="Please enter any ShoseCode to be verified from the database"
runat="server" BackColor="#FFFF99"
Width="197px" ForeColor="#FF3300"></asp:Label>
<asp:TextBox ID="txt_ShoseCode" runat="server" Width="197px"
AutoPostBack="True" ontextchanged="txt_ShoseCode_TextChanged"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="txt_ShoseCode" ErrorMessage="*ShoseCode Required"></asp:RequiredFieldValidator>
<br />
<asp:Timer ID="Timer1" runat="server" Interval="10000" ontick="Timer1_Tick">
</asp:Timer>
<asp:Label ID="lblMessage" runat="server" BackColor="#FF3300"
ForeColor="Black"></asp:Label>
<asp:Label ID="Label1" runat="server" Text="Label" Visible="False"></asp:Label>
</div>
</form>
</body>
</html>
&#39;
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
namespace WebApplication1
{
public partial class WebForm1 : System.Web.UI.Page
{
string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlCommand com;
string str;
protected void Page_Load(object sender, EventArgs e)
{
}
public void ShoseCode_check()
{
SqlConnection con = new SqlConnection(connStr);
con.Open();
str = "select count(*)from tblShoes where ShoesCode ='" + txt_ShoseCode.Text + "'";
com = new SqlCommand(str, con);
int count = Convert.ToInt32(com.ExecuteScalar());
if (count > 0)
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "ShowSuccess", "javascript:Display('" + txt_ShoseCode.Text + "')", true);
lblMessage.Text = "This Shoes Code already exist";
}
else
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "ShowSuccess", "javascript:Display('" + txt_ShoseCode.Text + "')", true);
lblMessage.Text = "This Shoes Code does not exist";
}
}
protected void txt_ShoseCode_TextChanged(object sender, EventArgs e)
{
ShoseCode_check();
}
protected void Timer1_Tick(object sender, EventArgs e)
{
Label1.Text = DateTime.Now.ToString();
}
}
}
答案 0 :(得分:1)
您可以使用onblur
使用jQuery
事件的文本框。
答案 1 :(得分:0)
正如我在你的另一个问题中所说,有人在这里也提到你可以使用 jQuery
因此,从文本框中删除事件 - ontextchanged =“txt_ShoseCode_TextChanged” 和 AutoPostBack =“True” 。所以现在它看起来像这样 -
<asp:TextBox ID="txt_ShoseCode" runat="server" Width="197px"></asp:TextBox>
现在正如你在问题中所说的那样 -
当我在txt_ShoseCode中输入ShoseCode并且此ShoseCode是 已存在于ShoseCode列中。所以这个txt_ShoseCode检索 数据库中的信息。或者,如果这不能检索所以只是显示 像“This Shoes Code已经存在”之类的消息或类似的东西。
要实现此功能,您可以将Jquery与“blur”事件一起使用,如下所示。
首先将模糊事件附加到文本框中。
$(document).ready(function () {
$('#<%=txt_ShoseCode.ClientID %>').blur(ShowAvailability);
});
这里 ShowAvailability()是一个javascript函数,它使用页面方法和jquery ajax调用服务器端方法 -
function ShowAvailability() {
$('#<%=Label1.ClientID %>').removeAttr("style");
$('#<%=Label1.ClientID %>').html('Please wait...');
$.ajax({
type: "POST",
url: "WebForm1.aspx/CheckShoseCodeAvailability",
data: "{'shoseCode':'" + $('#<%=txt_ShoseCode.ClientID %>').val() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
$('#<%=Label1.ClientID %>').html('');
switch (response.d) {
case "1":
$('#<%=Label1.ClientID %>').html('This Shoes Code does not exist');
case "2":
$('#<%=Label1.ClientID %>').html('This Shoes Code already exist');
},
error: function () {
alert("An error has occurred during processing your request.");
}
});
}
这是页面方法 - CheckShoseCodeAvailability()
[WebMethod()]
public static string CheckShoseCodeAvailability(string shoseCode)
{
string availStatus = string.Empty;
SqlConnection con = new SqlConnection(connStr);
con.Open();
str = "select count(*) from tblShoes where ShoesCode ='" + shoseCode + "'";
com = new SqlCommand(str, con);
int count = Convert.ToInt32(com.ExecuteScalar());
con.Close();
if (count > 0)
availStatus = "2";
else
availStatus = "1";
return availStatus;
}
我没有经过任何测试就把代码放了。所以首先要验证你的结果。而已。希望你现在明白了
注意: 您似乎是桌面应用程序开发人员。但是,让我告诉你一件事 - Stackoverflow网站不是为开发人员提供勺子。首先,你必须尝试自己,谷歌搜索它仍然如果你不知道然后然后在这里发布你的疑问。在这个问题中你得到-2票,因为没有任何尝试你直接发布问题。有很多网站和博客可供学习asp.net和jquery。希望你现在得到我想说的话......