2015-05-12 2 views
0

В моей форме веб-приложения asp.net и vb.net; выпадающий список для Главный контакт содержит список имен. Этот список отличается для разных пользователей, которые вошли в приложение.Как установить текущий пользователь в качестве значения по умолчанию в выпадающем списке ASP.Net и приложение VB.Net

Данные заполняются путем выбора запроса из полей базы данных. (Выберите запрос извлекает данные по Innerjoining два tables- таблицы EmployerUser таблицы & пользователя. Первичный ключ таблицы пользователя является ID, который является внешним ключом в таблице EmployerUser имени Идентификатор_пользователь.)

В переднем конце ASP.net кодирование

   <div class="form-element"> 
        <label> 
         Main contact (required) 
        </label> 
        <asp:DropDownList ID="comMainContact" runat="server" CssClass="chosen" EnableViewState="True" 
         DataTextField="name" DataValueField="id" /> 
       </div> 

В заднем конце VB.net кодирования для выпадающего списка

 comMainContact.DataSource = LocalHelper.CachedEmployerUserList(LocalHelper.UserEmployerID) 
     comMainContact.DataBind() 


     Public Shared Function CachedEmployerUserList(ByVal employerid As Integer) As DataTable 
       Dim CacheName As String = "helper_cachedemployeruserlist_" & CStr(employerid) 
       Dim DataList As DataTable = Nothing 

       Try 
        DataList = HttpContext.Current.Cache.Item(CacheName) 
       Catch 

       End Try 

       If DataList Is Nothing Then 

        DataList = Core.DB.GetData("SELECT [User].id AS 'id', [User].name + ' ' + [User].Surname AS 'name' FROM EmployerUser INNER JOIN [User] ON EmployerUser.userid = [User].id WHERE [User].deleted = 0 AND [User].active = 1 AND [User].emailverified IS NOT NULL AND EmployerUser.employerid = @employerid ORDER BY [User].surname, [User].name", Core.DB.SIP("employerid", employerid)) 
     HttpContext.Current.Cache.Insert(CacheName, DataList, Nothing, DateAdd(DateInterval.Minute, 1, Now), System.Web.Caching.Cache.NoSlidingExpiration) 

       End If 

       Dim FinalList As DataTable = DataList.Copy 

       Return FinalList 

     End Function 

проблема заключается в том: Это кодирование не устанавливает значение по умолчанию для основного контакта. Я хочу установить значение по умолчанию в выпадающем списке для основного контакта. В большинстве случаев значением по умолчанию является сам пользователь. Таким образом, было бы идеально, если текущий пользователь задан как значение по умолчанию в раскрывающемся списке, а также пользователь может изменить значение из выпадающего списка, если сам не является основным контактом.

Как это сделать.

Я могу отдельно определить, кто является в настоящее время вошедшим в систему пользователем.

Кодирование для определения текущего пользователя (Current вошедшего в систему пользователя может быть определено с помощью запроса на выборку, который извлекает данные из таблицы пользователей.)

Public Class User 

Public Shared Function UserFullName(ByVal User As Mypeoplebiz.User, Optional ByVal Title As Boolean = True) As String 

     If Title Then 

      Return Core.DB.GetString("SELECT name FROM Title WHERE id = @titleid", Core.DB.SIP("titleid", User.TitleID)) & " " & User.Name & " " & User.Surname 

     Else 
      Return User.Name & " " & User.Surname 

     End If 

    End Function 

End Class 

Как я могу установить текущего пользователя устанавливается как значение по умолчанию в выпадающего списка и дать пользователю возможность изменить значение из выпадающего списка.

Цените свою помощь.

Благодаря

ответ

0

следующие строки кода решить мою проблему. Поэтому я хочу поделиться им, если у кого-то есть аналогичная проблема.

Private strUserName As String = "" 

      strUserName = Core.DB.GetString("SELECT name + ' '+surname FROM [user] WHERE id = " & LocalHelper.UserID) 
      comMainContact.DataSource = LocalHelper.CachedEmployerUserList(LocalHelper.UserEmployerID) 
      comMainContact.DataBind() 
      comMainContact.SelectedIndex = comMainContact.Items.IndexOf(comMainContact.Items.FindByText(strUserName)) 

Надеется, что вы найдете пост полезных

1

Установите свойство SelectedValue из выпадающего списка в строке Имя пользователя:

comMainContact.SelectedValue = UserFullName(arguments)

https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.selectedvalue(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-2 См

+0

Спасибо за ответ. См. Мою отредактированную часть в вопросе. пожалуйста, направляйте меня. Я очень слабый на vb.net и asp.net. – Bashabi

+0

Вам нужно научиться отлаживать на этом этапе. Все, что вы пытаетесь установить, поскольку SelectedValue должно существовать в выпадающем списке. Поэтому, если вы пытаетесь установить SelectedValue на «Bill Gates», выпадающий список должен иметь значение «Bill Gates» или он вернет ошибку. –

+0

Я могу заверить вас. Я не устанавливаю выбранный предмет в чем-то сумасшедшем. вы видите запрос, чтобы убедиться. Я определенно делаю что-то неправильно. Но в процессе (который я прошу исправить исправление) определенно не в запросе выбора. – Bashabi

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