如何将Autocomplete与c#.net AJAX文本框textchanged事件一起使用?
我在C#.Net Textbox textchanged事件、AJAX和自动完成()方面遇到了一个非常棘手的问题 我有一个带有自动完成功能的文本框“航班号”。一旦选择了一个建议,我希望使用AJAX并更新“出发机场”(DDL)和“目的地机场”(DDL) 问题:当我从自动完成中选择任何建议时,航班号没有使用所选建议值发回。例如,如果我键入“G91”,然后单击“G9101”,G9101将在航班号文本框中出现一秒钟,然后由于自动回邮而重置为“G91”。如何让它发回建议值 更新:我解决了问题,但在第一次发帖后自动完成功能不起作用如何将Autocomplete与c#.net AJAX文本框textchanged事件一起使用?,c#,jquery,events,autocomplete,C#,Jquery,Events,Autocomplete,我在C#.Net Textbox textchanged事件、AJAX和自动完成()方面遇到了一个非常棘手的问题 我有一个带有自动完成功能的文本框“航班号”。一旦选择了一个建议,我希望使用AJAX并更新“出发机场”(DDL)和“目的地机场”(DDL) 问题:当我从自动完成中选择任何建议时,航班号没有使用所选建议值发回。例如,如果我键入“G91”,然后单击“G9101”,G9101将在航班号文本框中出现一秒钟,然后由于自动回邮而重置为“G91”。如何让它发回建议值 更新:我解决了问题,但在第一次发
//for flight number postback
protected void Page_Init(object sender, EventArgs e)
{
var onBlurScript = Page.ClientScript.GetPostBackEventReference(tbFlightNumber, "OnBlur");
tbFlightNumber.Attributes.Add("onblur", onBlurScript);
}
private void HandleCustomPostbackEvent(string ctrlName, string args)
{
//Since this will get called for every postback, we only
// want to handle a specific combination of control
// and argument.
if (ctrlName == tbFlightNumber.UniqueID && args == "OnBlur")
{
string flightNumber = tbFlightNumber.Text;
....
//update 2 airports DDL
}
}
航班号文本框
<div class="split half last">
<label for="calculator-flight-number">
Flight Number</label>
<asp:UpdatePanel ID="UpdatePanel7" runat="server">
<ContentTemplate>
<div id="autocomplete-wrap" class="autocomplete-wrap">
<asp:TextBox ID="tbFlightNumber" runat="server" ClientIDMode="Static" CssClass="fill" ontextchanged="tbFlightNumber_TextChanged" AutoPostBack="true"></asp:TextBox>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="bnCalculate" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</div>
这不起作用,因为我无法让AJAX为2个下拉列表注册触发器。此外,选择自动完成建议将触发“onblur”
第三次尝试:
我尝试在下一个字段中使用onfocus,但由于相同的原因,它不起作用
我有点困在这里了,有人能给我指点吗?TIA。如果您使用的是更新面板,则会出现问题,并且在第一次服务器调用后它将无法工作。要解决此问题,需要添加PageRequestManager PageLoad事件以再次加载内容 在标记添加之前添加页面底部:
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(AddHandler);
function AddHandler(sender,args)
{
var options = {
serviceUrl: '/Service/FlightSector',
appendTo: 'div#autocomplete-wrap'
};
console.log($('#tbFlightNumber'));
var a = $('#tbFlightNumber').autocomplete(options);
}
希望这能奏效
我也遇到了同样的问题,这就是我解决问题的方法。post html和javascript代码使用前端AJAX元素和javascript更新了代码。您的jquery自动完成功能不正常:jquery自动完成功能工作正常。只是我无法在点击建议后将其自动加载到机场。您选择的自动完成事件在哪里
//for flight number postback
protected void Page_Init(object sender, EventArgs e)
{
var onBlurScript = Page.ClientScript.GetPostBackEventReference(tbFlightNumber, "OnBlur");
tbFlightNumber.Attributes.Add("onblur", onBlurScript);
}
private void HandleCustomPostbackEvent(string ctrlName, string args)
{
//Since this will get called for every postback, we only
// want to handle a specific combination of control
// and argument.
if (ctrlName == tbFlightNumber.UniqueID && args == "OnBlur")
{
string flightNumber = tbFlightNumber.Text;
....
//update 2 airports DDL
}
}
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(AddHandler);
function AddHandler(sender,args)
{
var options = {
serviceUrl: '/Service/FlightSector',
appendTo: 'div#autocomplete-wrap'
};
console.log($('#tbFlightNumber'));
var a = $('#tbFlightNumber').autocomplete(options);
}