C#-TextBox TextChanged事件未触发
我目前正在工作的一个项目中,由于某种原因,我的textbox的textchanged事件没有触发。我试图在我的代码中设置断点,但他没有到达,因此他认为事件没有触发imoC#-TextBox TextChanged事件未触发,c#,asp.net,ajax,C#,Asp.net,Ajax,我目前正在工作的一个项目中,由于某种原因,我的textbox的textchanged事件没有触发。我试图在我的代码中设置断点,但他没有到达,因此他认为事件没有触发imo <FooterTemplate> <asp:TextBox ID="TextBoxSiteAlias" runat="server" AutoPostBack="true" OnTextChanged="TextBoxSiteAlias_TextChanged"></
<FooterTemplate>
<asp:TextBox ID="TextBoxSiteAlias" runat="server" AutoPostBack="true" OnTextChanged="TextBoxSiteAlias_TextChanged"></asp:TextBox>
<ajaxToolkit:AutoCompleteExtender
runat="server"
id="AutoCompleteExtenderSiteAlias"
targetcontrolid="TextBoxSiteAlias"
servicemethod="GetSiteAliasList"
minimumprefixlength="2"
completioninterval="1000"
enablecaching="true"
completionsetcount="12" />
</FooterTemplate>
这个函数应该在专用文本框失去焦点时立即调用
我一直在许多论坛上寻找原因,但所有这些回复都表明textbox需要AutoPostBack属性(我的属性是AutoPostBack)
小提示:我有相同的项目(与我们公司的另一笔交易具有相同的功能,在该项目中工作正常。我已将该项目代码复制到新项目中,并更改了所有查询+连接字符串)
希望有人能在这方面帮助我?:)
非常感谢
Kevin确保将
CausesValidation
设置为false。只是说,构建SQL命令字符串的方式看起来很危险。最好使用添加参数。也许可以尝试公开该方法。不确定这是否重要。请检查您的应用/页面是否已打开ViewStateon@svinja:公开该方法没有帮助。@Botz3000:好的“易于SQL注入”注释总是很受欢迎:)
protected void TextBoxSiteAlias_TextChanged(object sender, EventArgs e)
{
string query = @"select distinct (isnull([site_address1], '')
+isnull([site_address2], '')
+isnull([site_address3], '')
+isnull([site_address4], '')
+isnull([site_address5], '') ) as 'Site_adresse' ,
city,
country,
[site_id] as 'siteID'
FROM [Henkel].[dbo].[tbl_Henkel_site_info_upload]
WHERE site_id = '" + ((TextBox)GridView1.FooterRow.FindControl("TextBoxSiteAlias")).Text + "'";
conn.Open();
SqlCommand cmd = new SqlCommand(query, conn);
SqlDataReader myReader = cmd.ExecuteReader();
DataTable myTable = new DataTable();
myTable.Load(myReader);
conn.Close();
if (myTable.Rows.Count > 0)
{
((TextBox)GridView1.FooterRow.FindControl("TextBoxSiteAddress")).Text = Convert.ToString(myTable.Rows[0]["Site_adresse"]);
((TextBox)GridView1.FooterRow.FindControl("TextBoxSiteCity")).Text = Convert.ToString(myTable.Rows[0]["city"]);
((TextBox)GridView1.FooterRow.FindControl("TextBoxSiteCountry")).Text = Convert.ToString(myTable.Rows[0]["country"]);
((TextBox)GridView1.FooterRow.FindControl("TextBoxIBSSiteID")).Text = Convert.ToString(myTable.Rows[0]["siteID"]);
}
else
{
((TextBox)GridView1.FooterRow.FindControl("TextBoxSiteAddress")).Text = "";
((TextBox)GridView1.FooterRow.FindControl("TextBoxSiteCity")).Text = "";
((TextBox)GridView1.FooterRow.FindControl("TextBoxSiteCountry")).Text = "";
((TextBox)GridView1.FooterRow.FindControl("TextBoxIBSSiteID")).Text = "";
}
}