#c# #asp.net
#c# #asp.net
Вопрос:
У меня есть расширитель автозаполнения и список, из которого даются предложения, я разрешаю пользователю вводить более 1 значения, разделенных точкой с запятой (;). И разделите строку
string[] result = txt_to.Text.Split(';');
после ввода одного значения пользователь должен ввести; чтобы он мог ввести второе значение, как я могу автоматически ввести; после выбора каждого значения, чтобы пользователь мог просто ввести второе значение без ввода ;
<asp:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" TargetControlID="txt_to"
MinimumPrefixLength="2" CompletionInterval="10" CompletionSetCount="3" EnableCaching="true"
FirstRowSelected="true" UseContextKey="True" ServiceMethod="GetCompletionList"
DelimiterCharacters=";" ShowOnlyCurrentWordInCompletionListItem="true" />
Ответ №1:
попробуйте добавить 2 обработчика. Один, когда нажата клавиша «ввод» (если пользователь выбирает значение с помощью клавиатуры), а другой, когда пользователь выбирает значение с помощью мыши. в обработчиках добавьте; в текстовое поле.
надеюсь, это помогло…
попробуйте это
добавьте в свой расширитель: OnClientItemSelected =»addSemiColumn»
добавьте эти 2 javascripts на свою страницу:
function GetKeyPress(){
if (window.event.keyCode == 13){
document.getElementById ('txt_to').value =";";
}
}
function addSemiColumn(){
document.getElementById ('txt_to').value =";";
}
и это к вашему коду:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If IsPostBack Then
txt_to.Focus()
End If
txt_to.Attributes.Add("OnKeyPress", "GetKeyPress()")
End Sub
Комментарии:
1. Можете ли вы показать какой-нибудь код для этого, будет полезно для меня. Спасибо
Ответ №2:
когда вы выбираете значение и перед тем, как установить это значение в текстовое поле, просто добавьте «;» к этому выбранному значению, а затем установите в текстовое поле.
Спасибо Джинеш Джейн