[英]How to make an ASP.NET TextBox fire it's onTextChanged event fire in an AJAX UpdatePanel?
我试图让一个文本框在每次击键时触发它的 onTextChanged 事件,而不是仅在它失去焦点时才触发。 我认为添加 AsyncPostBackTrigger 可以做到这一点,但它仍然无法正常工作。 我正在尝试做的事情有可能吗? 代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Items.aspx.cs" MasterPageFile="~/MMPAdmin.Master" Inherits="MMPAdmin.Items" %>
<asp:Content ID="content1" runat="server" ContentPlaceHolderID="ContentPlaceHolder1">
<asp:ScriptManager ID="sm_Main" runat="server" />
<div style="left:10px;position:relative;width:100%;overflow:hidden">
<asp:UpdatePanel ID="up_SearchText" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="tb_Search" EventName="TextChanged" />
</Triggers>
<ContentTemplate>
<div style="position:relative;float:left">
<b style="font-size:xx-large">Items</b>(<a href="Item.aspx">Add New</a>)
</div>
<div style="right:25px;position:absolute; top:30px">
Search: <asp:TextBox ID="tb_Search" runat="server" Width="200" OnTextChanged="UpdateGrid" AutoPostBack="true" />
</div>
<br />
<div>
<asp:GridView runat="server" AutoGenerateColumns="true" ID="gv_Items" AutoGenerateEditButton="true" AutoGenerateDeleteButton="true" />
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</asp:Content>
onkeyup
时,您需要为文本框控件调用_postback()
function。PS :asp.net 控制工具包中有一个,或者您可以使用 jquery 自动完成插件,我发现它更好一些。
AutoPostBack="true" OnTextChanged="TextBox1_TextChanged"
这两个事件都需要触发文本更改事件。
不需要使用 AJAX 控件来检查可用性。使用它不是强制性的 AJAX 控件。我们可以使用以下代码。
<iframe>
<asp:TextBox ID="TextBox1" runat="server" AutoPostBack="true" ontextchanged="TextBox1_TextChanged"></asp:TextBox>
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
RequiredFieldValidator1.ErrorMessage = "";
Label1.Text = "";
string name = TextBox1.Text.ToString();
string constr = "data Source=MURALY-PC\\SQLEXPRESS; database=Online; Integrated Security=SSPI";
SqlConnection con = new SqlConnection(constr);
con.Open();
string query = "select UserName from User_tab where UserName='" + name + "'";
SqlCommand cmd = new SqlCommand(query, con);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
Label1.Text = "UserName Already Exists";
}
else
{
Label1.Text = "";
Label1.Text = "UserName Available";
}
con.Close();
}
</iframe>
AsyncPostBackTrigger 所做的就是确保只有页面的那部分在事件被触发时刷新,它在事件被触发时不会改变。
我认为可以做你想做的事,但你需要编写一些 javascript 代码来手动触发事件......我什至不想考虑让它工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.