2011-08-05 3 views
0

Кажется, это пустяковая проблема, но не может определить решение.Проблема с вставкой элемента в выпадающий список

У меня есть падение вниз, связанное с данным. Я пытаюсь вставить новый элемент в позицию 0, но когда элемент управления загружен, я не вижу новый список или любые ошибки.

Public Sub Page_Load(ByVal sender As Object, ByVal e As eventargs) Handles Me.Load 
    If Not Page.IsPostBack Then 
     loadRegistrantAbstracts() 
    End If 
End Sub 
Public Sub loadRegistrantAbstracts() 
    Dim obj As New Lookups 
    Dim dtAbstracts As DataTable 

    dtAbstracts = obj.getAbstracts() 

    If dtAbstracts.Rows.Count > 0 Then 
     With ddlAbstracts 
      .DataSource = dtAbstracts 
      .DataTextField = "DisplayName" 
      .DataValueField = "AbstractID" 
      .DataBind() 
      .Items.Insert(0, New ListItem("Select Abstract..", "0")) 
     End With 
    End If 
End Sub 

ответ

0

ответ, в частности, благодаря жёстко, был следующие:

0

С тех пор как DropDownList привязан, он отобразит «материал» в DataTable. Вы хотите добавить параметр «Выбрать абстрактный ...» в качестве DataRow в DataTable. Когда вы меняете источник .DataSource, он будет отображаться в DropDownList.

Скорее всего вы загружаете это из базы данных, так что вы можете решить включить опцию «Выбрать ...» в запросе:

SELECT 0 AS id, 'Select Abstract ...' AS abstract_name, 0 AS sort_order 
UNION 
SELECT dbo.abstracts.id, dbo.abstracts.name AS abstract_name, 1 as sort_order FROM dbo.abstracts 
ORDER BY sort_order, abstract_name 
+0

Спасибо за ваш ответ. IMO Я бы предпочел сохранить код приложения отдельно от базы данных. Однако вы подняли хороший момент, который привел меня к решению, которое сработало. Как только я извлек записи и сохранил их в dtAbstracts, я вставил новый datarow перед связыванием. –

Смежные вопросы