Obout Combobox выбран Индекс изменен, событие не работает
Моя проблема в том, что выбранное событие изменения индекса в Obout Combobox вообще не срабатывает.
Смотрите мой код ниже:
<obout:ComboBox ID="ddPractice" runat="server" Width="350" MenuWidth="650" Height="180"
DataTextField="LocationText" DataValueField="LocationID" EmptyText="Search By Practice Name/Code/PostCode"
EnableLoadOnDemand="true" EnableVirtualScrolling="true" AutoValidate="true" AutoPostBack="true" AllowCustomText="false"
TabIndex="11">
<HeaderTemplate>
<div class="header" style="width: 290px;">
Practice
</div>
<div class="header" style="margin-left: 0px; width: 90px;">
PostCode
</div>
<div class="header" style="margin-left: 0px; width: 90px;">
Practice Code
</div>
<div class="header" style="margin-left: 0px; width: 100px;">
PCT
</div>
</HeaderTemplate>
<ItemTemplate>
<div class="item" style="width: 290px;">
<%# Eval("LocationName")%>
</div>
<div class="item" style="margin-left: 0px; width: 90px;">
<%# Eval("PostCode")%>
</div>
<div class="item" style="margin-left: 0px; width: 90px;">
<%# Eval("PracticeCode")%>
</div>
<div class="item" style="margin-left: 0px; width: 100px;">
<%# Eval("PCTName")%>
</div>
</ItemTemplate>
</obout:ComboBox>
<asp:TextBox ID="txtPractice" runat="server" Width="250px" Height="21" Visible="false" />
Код позади
Private Sub ddPractice_SelectedIndexChanged(sender As Object, e As Obout.ComboBox.ComboBoxItemEventArgs) Handles ddPractice.SelectedIndexChanged
If ddPractice.SelectedValue = "685" Then
txtPractice.Visible = True
End If
End Sub
У меня также есть функция, которая загружает элементы в комбинированный список
Private Sub Practice_LoadingItems(sender As Object, e As Obout.ComboBox.ComboBoxLoadingItemsEventArgs) Handles ddPractice.LoadingItems
Dim data As DataTable = GetPractices(e.Text, e.ItemsOffset, 10)
Dim combobox As Obout.ComboBox.ComboBox = CType(sender, Obout.ComboBox.ComboBox)
combobox.DataSource = data
combobox.Items.Clear()
combobox.DataBind()
e.ItemsLoadedCount = e.ItemsOffset + data.Rows.Count
e.ItemsCount = GetPracticesCount(e.Text)
End Sub
Я видел похожий вопрос в переполнении стека, но у него нет ответов. Кроме того, поскольку у меня недостаточно репутации, я не могу это комментировать.
Пожалуйста помоги.
1 ответ
Привет, я сумел сделать так, чтобы выбранный индекс изменил работу события.
Единственное, что я сделал - на странице aspx я добавил AllowCustomText="true" вместо false.
<obout:ComboBox ID="ddPractice" runat="server" Width="350" MenuWidth="650" Height="180"
DataTextField="LocationText" DataValueField="LocationID" EmptyText="Search By Practice Name/Code/PostCode" AutoPostBack="true"
EnableLoadOnDemand="true" EnableVirtualScrolling="true" AutoValidate="true" AllowCustomText="true"
TabIndex="11" style="top: 0px; left: 0px">
Это решило мою проблему!
Обратите внимание: если для этого значения установлено значение false, оно не даст вам выбранного значения. Оно всегда будет пустым. Поэтому перед сохранением установите для параметра AllowCustomText ppty значение False, а затем сохраните его!.
Странно, почему это может вызвать проблемы, но это сработало!
Спасибо за вашу помощь!