У меня проблема с DetailsView. Мне нужно использовать DropDownList для значений обновлений в databaze. Эти значения у меня есть в другой таблице. Я использую ObjectDataSource и работает правильно. Моя проблема заключается в том, как использовать DropDownList, когда я не могу связать SelectedValue в дизайнере, потому что он отсутствует. Я нашел много советов, таких какASP.Net - DropDownList используется в EditItemTemplate в DetailsView
<asp:DropDownList ID="ddlEditPermissions" runat="server" DataSource='<%#getPermissions() %>' SelectedValue='<%# Bind("PermissionID") %>'/>
Но, как я писал, свойство SelectedValue не допускается в дизайнере. Я ищу другой способ: SelectedValue = '<% # Bind ("PermissionID")%>', потому что я хочу использовать свойство DropDownList SelectedValue в качестве параметра для метода UpdateDeadSource ObjectDataSource.
Мой метод обновления:
public static void UpdateUser(int UserId, string UserName, int PermissionID)
{
using (DC_databazeDataContext db = new DC_databazeDataContext())
{
if (!db.DatabaseExists())
throw new Exception("Databáze neexistuje nebo se k ní nedá připojit!");
var users = db.USERs.Where(u => u.USER_ID == UserId);
if (users.Count() == 0) return;
USER aktU = users.First();
aktU.USER_NAME_A = UserName;
aktU.OPRAVNENI_ID = PermissionID;
db.SubmitChanges();
}
}
Вот мой DetailsVeiw:
<asp:DetailsView ID="DetailsView2" runat="server" AutoGenerateRows="False" DataSourceID="ODS_UzivatelDetail" DataKeyNames="UserId">
<Fields>
<asp:BoundField DataField="UserId" HeaderText="UserId" SortExpression="UserId" ReadOnly="true" />
<asp:BoundField DataField="UserName" HeaderText="UserName" SortExpression="UserName" />
<asp:TemplateField HeaderText="PermissionID" SortExpression="PermissionID">
<EditItemTemplate>
<asp:DropDownList ID="ddlEditPermissions" runat="server" DataSource='<%# getPermissions() %>'/>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lPermissions" runat="server" Text='<%# Bind("PermissionID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" />
</Fields>
</asp:DetailsView>
DB таблицы:
Пользователи
- USER_ID - INT
- PERMISSION_ID - INT
- USER_NAME_A - NVARCHAR (20)
Права доступа
- PERMISSION_ID - INT
- PERMISSION_NAME_ A - NVARCHAR (20)
Я использую VS2012 .Net Framework 4.5 ... Так может кто-нибудь мне помочь?
не могли бы вы подробнее рассказать о своем вопросе, чтобы другие могли помочь вам лучше. Что на самом деле вы пытаетесь сделать. –
@HarishBhatt Я старался быть более конкретным. Английский не самый лучший навык :) –
Я отправил свой ответ в соответствии с моим пониманием ниже, дайте мне знать, он работает на вас. –