DetailsViewに問題があります。データベースの値を更新するには、 DropDownListを使用する必要があります。これらの値は、別のテーブルにあります。ObjectDataSource を使用していますが、正しく動作します。私の問題は、デザイナーでSelectedValueが見つからないためにバインドできない場合に DropDownList を使用する方法です。私は多くのアドバイスを見つけました
<asp:DropDownList ID="ddlEditPermissions" runat="server" DataSource='<%#getPermissions() %>' SelectedValue='<%# Bind("PermissionID") %>'/>
しかし、私が書いたように、SelectedValue プロパティはデザイナーでは許可されていません。ObjectDataSource UpdateMethod のパラメーターとして DropDownList SelectedValue プロパティを使用したいので、 SelectedValue='<%# Bind("PermissionID") %>' の別の方法を探しています。
私の更新方法:
    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 テーブル:
ユーザー
- ユーザー ID -整数
- PERMISSION_ID -整数
- USER_NAME_A - nvarchar(20)
権限
- PERMISSION_ID -整数
- PERMISSION_NAME_A - nvarchar(20)
私はVS2012 .Net Framework 4.5を使用しています...誰でも私を助けることができますか?