現在、職場でプロジェクトに取り組んでいますが、何らかの理由でテキスト ボックスの 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>
これは、Gridview の FooterTemplate です。
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 = "";
}
}
これは、専用のテキスト ボックスがフォーカスを失うとすぐに呼び出される関数です。
私は多くのフォーラムで理由を探してきましたが、それらのすべての返信は、テキストボックスに AutoPostBack プロパティが必要であることを示していました (これは私のものです)。
小さな通知: 私は同じプロジェクトを持っています (私たちの会社の別の取引に対してすべて同じ機能を持ち、そのプロジェクトでは正常に動作します。そのプロジェクトのコードを新しいプロジェクトにコピーし、すべてのクエリと接続文字列を変更しました)
うまくいけば、誰かがこれについて私を助けることができますか? :)
どうもありがとう
ケビン