Я хотел бы, чтобы мой выбор AutoCompleteExtender запускал событие в коде позади. Раньше я запускал события onClick из кода javascript, но в этом случае это похоже на дополнительные шаги. В конечном счете, когда пользователь выбирает имя из списка AutoCompleteExtender, я хочу взять идентификатор, связанный с этим именем, вызвать службу для получения дополнительных данных, а затем добавить в 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>
Яваскрипт:
<script type="text/javascript">
function onStudentSelected(sender, e) {
var selectedStudent = eval("(" + e._value + ")");
alert(selectedStudent); //this alerts what I expect
//how to call the SingleStudentSelected event, and send the selectedStudent
с участием?
}
</script>
Код позади:
protected void SingleStudentSelected(object sender, EventArgs e)
{
///TODO: get data from service and add to grid
}
Могу ли я сделать это напрямую или мне нужна скрытая кнопка или текстовое поле для запуска события OnChange? Я хотел бы сделать это самым чистым способом. Спасибо.
Обновление. Это целевое текстовое поле.
<asp:TextBox ID="StudentNameSearchTextBox" runat="server"
CssClass="StudentNameSearch" OnTextChanged="StudentNameSearchTextBox_TextChanged"
ViewStateMode="Inherit"></asp:TextBox>
Добавил это в javascript:
__doPostBack(sender.get_element().name, selectedStudent);
А это событие:
protected void StudentNameSearchTextBox_TextChanged(object sender, EventArgs e)
{
///TODO: get data from service and add to grid
}
Итак, мне нужно скрытое поле для хранения selectedStudent (ЗНАЧЕНИЕ выбранного элемента), чтобы я мог использовать его в событии StudentNameSearchTextBox_TextChanged?