C# Ajax AutoCompleteXtender触发C事件

C# Ajax AutoCompleteXtender触发C事件,c#,asp.net,ajax,autocompleteextender,C#,Asp.net,Ajax,Autocompleteextender,我希望我的AutoCompleteXtender选择在代码隐藏中触发事件。我以前从javascript代码中触发过onClick事件,但在本例中这似乎是额外的步骤。 最后,当用户从AutoCompleteXtender列表中选择一个名称时,我希望获取与该名称关联的ID,调用服务以获取更多数据,然后添加到页面上的GridView。到目前为止我所拥有的 <ajaxToolkit:AutoCompleteExtender ID="StudentNameSearchTextBox_AutoComp

我希望我的AutoCompleteXtender选择在代码隐藏中触发事件。我以前从javascript代码中触发过onClick事件,但在本例中这似乎是额外的步骤。 最后,当用户从AutoCompleteXtender列表中选择一个名称时,我希望获取与该名称关联的ID,调用服务以获取更多数据,然后添加到页面上的GridView。到目前为止我所拥有的

<ajaxToolkit:AutoCompleteExtender ID="StudentNameSearchTextBox_AutoCompleteExtender" runat="server"
    TargetControlID="StudentNameSearchTextBox" 
    ServicePath="~/Scripts/AutoComplete.asmx"
    ServiceMethod="GetStudents"
    OnClientItemSelected="onStudentSelected"
    MinimumPrefixLength="2" 
    CompletionSetCount="30" 
    UseContextKey="True" 
    CompletionListCssClass="autocomplete_completionListElement" 
    CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem" 
    CompletionListItemCssClass="autocomplete_listItem" >
</ajaxToolkit:AutoCompleteExtender>
我可以直接这样做,还是需要一个隐藏的按钮或文本框来触发OnChange事件?我希望以最干净的方式完成这项工作。 谢谢

更新- 这是目标文本框-

<asp:TextBox ID="StudentNameSearchTextBox" runat="server" 
    CssClass="StudentNameSearch" OnTextChanged="StudentNameSearchTextBox_TextChanged"
    ViewStateMode="Inherit"></asp:TextBox>
这就是事件:

    protected void StudentNameSearchTextBox_TextChanged(object sender, EventArgs e)
    {
        ///TODO: get data from service and add to grid
    }   

因此,我需要一个隐藏字段来保存所选项目的selectedStudent值,这样我就可以在StudentNameSearchTextBox\u TextChanged事件中使用它了?

在我看来,最干净的方法是将所选值保存到HiddenField的值中,从HiddenButton启动回发,并在button的click事件处理程序中执行所有操作。

,我刚刚在这里看了你的帖子:非常接近,-我将编辑我的问题以显示我做了什么。该帖子中建议的解决方案将击中服务器,即使用户在目标文本框中输入任何文本,不选择任何选项,然后向服务器提交表单,例如单击任何按钮。在您的情况下,您不仅需要处理目标文本框的文本,还需要处理从建议列表中选择的值。所以在我看来,textbox的TextChanged事件在这种情况下不是很好的选项。我明白你的意思。那就按按钮吧。非常感谢。
    protected void SingleStudentSelected(object sender, EventArgs e)
    {
        ///TODO: get data from service and add to grid
    } 
<asp:TextBox ID="StudentNameSearchTextBox" runat="server" 
    CssClass="StudentNameSearch" OnTextChanged="StudentNameSearchTextBox_TextChanged"
    ViewStateMode="Inherit"></asp:TextBox>
    __doPostBack(sender.get_element().name, selectedStudent);
    protected void StudentNameSearchTextBox_TextChanged(object sender, EventArgs e)
    {
        ///TODO: get data from service and add to grid
    }