Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не правильно работает Master-Details / 3 сообщений из 3, страница 1 из 1
18.07.2006, 11:42
    #33860122
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не правильно работает Master-Details
Есть GridView — _modelTypesGridView
Есть DetailsView для него — _modelTypeDetailsView;

Пытаюсь связать их через ControlParametr программно...
однако работает не верно:
— Выделяем строку впервый раз — результат — ничего просто выделилась строка,
а нужно чтобы в DetailsView появилась соотв. информация.
— выделяю второй раз — появилась соответствующая информация в DetailsView
— выделяю другую строку — в Details View остаётся предыдущая информация
при дальнейших выделениях срок в GridView -никаких изменений не происходит. :(
Что делать?

То же самое только сделанное с помощью Designer'а студии работает на УРА.


    public class ModuleTypesViewWebControl : CompositeControl
    {
        ObjectDataSource _modelTypesDataSourceForGridView;
        ObjectDataSource _modelTypesDataSourceForDetailsView;
        GridView _modelTypesGridView;
        DetailsView _modelTypeDetailsView;

        protected override void CreateChildControls()
        {
            _modelTypesDataSourceForGridView = new ObjectDataSource();
            _modelTypesDataSourceForGridView.TypeName = "GarageBusinessLogicLayer.ModelTypes";
            _modelTypesDataSourceForGridView.SelectMethod = "GetAllModelTypes";
            _modelTypesDataSourceForGridView.UpdateMethod = "UpdateModelType";
            _modelTypesDataSourceForGridView.InsertMethod = "AddModelType";
            Controls.Add(_modelTypesDataSourceForGridView);
            _modelTypesDataSourceForGridView.DataBind();

            _modelTypesGridView = new GridView();
            _modelTypesGridView.SelectedRowStyle.BackColor = System.Drawing.Color.Yellow;
            _modelTypesGridView.ID =  "ModelTypesGridView";
            _modelTypesGridView.BorderStyle = BorderStyle.None;
            _modelTypesGridView.BorderWidth = 0;
            _modelTypesGridView.AutoGenerateSelectButton = true;
            _modelTypesGridView. DataKeyNames = new string[] { "ID" };
            _modelTypesGridView.AutoGenerateEditButton = true;
            _modelTypesGridView.AutoGenerateDeleteButton = true;
            _modelTypesGridView.AutoGenerateColumns = false;
            _modelTypesGridView.AutoGenerateSelectButton = true;

            BoundField idField = new BoundField();
            idField.HeaderText = "Номер";
            idField.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
            idField.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
            idField.DataField = "ID";
            _modelTypesGridView.Columns.Add(idField);

            BoundField nameField = new BoundField();
            nameField.HeaderText = "Название";
            nameField.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
            nameField.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
            nameField.DataField = "Name";
            _modelTypesGridView.Columns.Add(nameField);

            _modelTypesGridView.Width = 300;
            _modelTypesGridView.DataSource = _modelTypesDataSourceForGridView;
            Controls.Add(_modelTypesGridView);
            _modelTypesGridView.DataBind();

            Controls.Add(new LiteralControl("<br>"));

            _modelTypesDataSourceForDetailsView = new ObjectDataSource();
            _modelTypesDataSourceForDetailsView.TypeName =  "GarageBusinessLogicLayer.ModelTypes";
            _modelTypesDataSourceForDetailsView.SelectMethod = "GetModelTypeByID";
            
            // SELECT-параметр
            ControlParameter selectControlParameter = new ControlParameter();
            selectControlParameter.Type = TypeCode.Int32;
            selectControlParameter.ControlID = [b]"ModelTypesGridView";

            selectControlParameter.Name = "id";
            selectControlParameter.PropertyName =  "SelectedValue";
            selectControlParameter.Direction = System.Data.ParameterDirection.Input;
            _modelTypesDataSourceForDetailsView.SelectParameters.Add(selectControlParameter);[/b]            //

            // INSERT-параметр
            Parameter insertParameter = new Parameter();
            insertParameter.Direction = System.Data.ParameterDirection.Input;
            insertParameter.Type = TypeCode.Int32;
            insertParameter.Name = "modelTypeName";
            _modelTypesDataSourceForDetailsView.InsertParameters.Add(insertParameter);
            //
            _modelTypesDataSourceForDetailsView.UpdateMethod = "UpdateModelType";
            _modelTypesDataSourceForDetailsView.InsertMethod = "AddModelType";
            Controls.Add(_modelTypesDataSourceForDetailsView);
            _modelTypesDataSourceForDetailsView.DataBind();

            EnsureChildControls();
            _modelTypeDetailsView = new DetailsView();
            _modelTypeDetailsView.BorderStyle = BorderStyle.None;
            _modelTypeDetailsView.BorderWidth = 0;
            _modelTypeDetailsView.AutoGenerateDeleteButton = true;
            _modelTypeDetailsView.AutoGenerateEditButton = true;
            _modelTypeDetailsView.AutoGenerateInsertButton = true;
            _modelTypeDetailsView.AutoGenerateRows = true;
            _modelTypeDetailsView.DataSource = _modelTypesDataSourceForDetailsView;
            Controls.Add(_modelTypeDetailsView);
            _modelTypeDetailsView.DataBind();
        }
...
Рейтинг: 0 / 0
18.07.2006, 12:05
    #33860222
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не правильно работает Master-Details
Здравствуйте, Аноним, Вы писали:

Поправка:

А>Пытаюсь связать их через ControlParametr программно...
А>однако работает не верно:
А> — Выделяем строку впервый раз — результат — ничего просто выделилась строка,
А> а нужно чтобы в DetailsView появилась соотв. информация.
А> — выделяю второй раз — появилась информация соответствующая предыдущему выделению
А> — выделяю другую строку — в Details View остаётся предыдущая информация
А> при дальнейших выделениях срок в GridView -никаких изменений не происходит. :(
А> Что делать?
...
Рейтинг: 0 / 0
18.07.2006, 12:06
    #33860228
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не правильно работает Master-Details
ПРОБЛЕМА РЕШЕНА.

Вместо DataSource = ...; ....DataBind() нужно использовать DataSourceID :beer:

Это быстрый способ решить проблему
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не правильно работает Master-Details / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]