2015-01-30 2 views
0

Дело в том, как это: таблицы БД, как это: dbASP.NET Textbox автозаполнения получить другое значение столбца таблицы

И Нужный UI, как это: UI

ли это возможно делать? Я хочу сделать автозаполнение, до полного имени, а затем, когда пользователь вводит, например, john, поэтому все клиенты, у которых есть имя с john, будут показаны с дополнительными данными имени филиала, а если пользователь выберет одну из строк во всплывающем окне, он обновит номер cif. Пример: -John Doe | Mighigan филиал -John Alex | Каирское отделение -David John | Canada Branch

До сих пор я искал всплывающее автозаполнение в asp.net, он просто просматривал один столбец в базе данных и обновлял одно и то же текстовое поле. Мне нужно обновить несколько текстовых полей, имя клиента и номер cif. Или, только номер CIF, но автозаполнение будет искать имя клиента и имя ветки.

Большое спасибо.

+0

Да, вы можете это сделать? Присоединитесь к своим двум столбцам «имя_файла» и «имя ветки» и используйте это для привязки «автозаполнения», а затем, когда пользователь выбирает обновление всех других полей в пользовательском интерфейсе. –

+0

Есть ли учебник, в котором обсуждается тот же случай, сэр? – Khaneddy2013

+0

Прежде всего, я не сэр, и я не уверен, есть ли учебник, но вы можете приступить к работе над ним и прийти сюда в случае возникновения проблем. –

ответ

0

Для выгонки текста выбранного события вы можете подписаться на TextChanged событии и использовать функцию ниже в качестве обработчика для клиента события itemSelected экстендера OnClientItemSelected="autoCompleteEx_ItemSelected":

<script type="text/javascript"> 
function autoCompleteEx_ItemSelected(sender, args) { 
     __doPostBack(sender.get_element().name, ""); 
} 
</script> 

И вы можете удалить AutoPostBack="true" из целевого текстового поля

И ваше сообщение после обратной связи будет

protected void autoCompleteTextbox_ValueChanged(object sender, EventArgs e) 
    { 
    ///populate the form based on retrieved data 
    } 

От this ссылке вы должны присоединиться к вашим два поля, как

List<string> autocompleteList= new List<string>(); 
    for (int i = 0; i < dt.Rows.Count; i++) 
    { 
     autocompleteList.Add(dt.Rows[i]["FullName"].ToString()+"|"+dt.Rows[i]["BranchName"].ToString()); 
    } 

Поместите свой OnClientItemSelected="autoCompleteEx_ItemSelected" в automcomplete удлинителя.

<ajaxtoolkit:AutoCompleteExtender runat="server" 
    //other properties 
    OnClientItemSelected="autoCompleteEx_ItemSelected"> 
</ajaxtoolkit:autocompleteextender> 
+0

Где я должен поставить OnClientItemSelected? в теге ? Я знаю, как использовать jquery, но, если инструмент проще в использовании, я хочу его использовать. Тег jQuery не легко читается в ms visual studio. визуальная студия не может обнаружить опечатку в синтаксисе jQuery. – Khaneddy2013

+0

__doPostBack (sender.get_element(). Name, ""); это значит, что я должен создать функцию __doPostBack? Если да, со стороны клиента или сервера? – Khaneddy2013

+0

'__doPostBack()' используется asp для запуска событий postback, генерируя код javascript. Мы используем ту же функцию, что и для обратной записи на странице для этого сообщения, нам нужно написать событие в коде. Как я упомянул в ответе. Итак, здесь '__doPostBack (sender.get_element(). Name," ");' будет вызывать событие на странице, позади которого соответствует 'sender.get_element().name', поэтому, если это значение является 'autoText', тогда код за событием будет' protected void autoText_ValueChanged (object sender, EventArgs e) ' –