son409

博客园 首页 新随笔 联系 订阅 管理

Model.Users中的UserRoleId,UserStateId为外键。这两个外键在ListView 的 EditItemTemplate模板中,使用DropDownList呈显数据。
当修改User时,在ObjectDataSource 的Updating事件中,采用下列方法将DropDownList中的外键值传递给model。
        protected void ODS_User_Updating(object sender, ObjectDataSourceMethodEventArgs e)
        {
            //获取修改后的UserRole对象
            DropDownList userRoleId = ListView1.EditItem.FindControl("DDR_UserRoleId") as DropDownList;
            int roleId = int.Parse(userRoleId.SelectedValue);
            UserRoles r = new UserRolesBLL().Get(roleId);
            //获取修改后的UserStates对象
            DropDownList UserStateId = ListView1.EditItem.FindControl("DDL_UserStateIdTextBox") as DropDownList;
            int stateId = int.Parse(UserStateId.SelectedValue);
            UserStates s = new UserStatesBLL().Get(stateId);
            Users u = e.InputParameters["model"] as Users;
            u.UserRoleId = r;
            u.UserStateId = s;
        }
备注:若采用e.InputParameters["model"]=u;的方法,会产生如下异常:
OrderedDictionary 是只读的,无法修改。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.NotSupportedException: OrderedDictionary 是只读的,无法修改。

posted on 2012-11-19 15:11  son409  阅读(366)  评论(0编辑  收藏  举报