Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> gridview переходит в режим редактирова со второго, раза при клике по кнопке edit 
V
    Опции темы
Nickname
Дата 14.11.2007, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 1
Всего: 1



Здрасте. У меня почему-то grid переходит в режим редактирования только по второму щелчку по кнопке edit? Хотя событие GridView1_RowEditing вызывается каждый раз и свойство e.NewEditIndex соответствует выбранной строке. Кто с таким сталкивался?
 За рание спасибо.

Это сообщение отредактировал(а) Nickname - 14.11.2007, 16:56
PM MAIL   Вверх
Mymik
Дата 14.11.2007, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



покажи код.
желательно Page_Load метод где ты биндишь объект и метод где ты назначаешь редактирование.
Как правило ошибка возникает, что после редактирования ты перебиндиваешь Grid

Добавлено через 26 секунд
а еще может быть ты не то событие перехватываешь smile


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
Nickname
Дата 15.11.2007, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 1
Всего: 1



Цитата

а еще может быть ты не то событие перехватываешь

Как не то? я же написал GridView1_RowEditing
А насчет перебиндивания вы правы, вот кусок кода (лишнее не связанное с GridView убрал):
Код

protected void Page_Load(object sender, EventArgs e)
    {
...

        ObjectDataSource2.UpdateMethod = "updateemployee";
        ObjectDataSource2.InsertMethod = "insertemployee";

        if (!IsPostBack)
        {
            ObjectDataSource2.SelectMethod = "getemployees_ds_pages";
            GridView1.DataSource = ObjectDataSource2;
            GridView1.DataBind();
            ObjectDataSource2.SelectParameters.Clear();
        }

        if (IsPostBack)
        {
            
            ObjectDataSource2.SelectMethod = "getemployees_ds_pages";
            GridView1.DataSource = ObjectDataSource2;
            GridView1.DataBind();
            ObjectDataSource2.SelectParameters.Clear();
        }
        
    }

Пробовал убрать все то, что после IsPostBack - всеравно срабатывает после второго клика, да еще в добавок для редактирования пыстые строки открывает. 
Так обрабатываю событие:
Код

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;
    }

PM MAIL   Вверх
Servena
Дата 15.11.2007, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 251
Регистрация: 24.7.2007
Где: Днепропетровск

Репутация: 4
Всего: 14



Может я чет не шарю, но мне кажется что

Код

if (!IsPostBack)
        {
            ObjectDataSource2.SelectMethod = "getemployees_ds_pages";
            GridView1.DataSource = ObjectDataSource2;
            GridView1.DataBind();
            ObjectDataSource2.SelectParameters.Clear();
        }
        if (IsPostBack)
        {
            
            ObjectDataSource2.SelectMethod = "getemployees_ds_pages";
            GridView1.DataSource = ObjectDataSource2;
            GridView1.DataBind();
            ObjectDataSource2.SelectParameters.Clear();
        }


равняется 

Код

ObjectDataSource2.SelectMethod = "getemployees_ds_pages";
GridView1.DataSource = ObjectDataSource2;
GridView1.DataBind();
ObjectDataSource2.SelectParameters.Clear();

PM MAIL   Вверх
Nickname
Дата 15.11.2007, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 1
Всего: 1



Да так то оно так, но даже если оставить только (на всякий случ приведу пример полностью):
Код

protected void Page_Load(object sender, EventArgs e)
    {
int page = 1;
        int pnumber = 3;
        if (Request.QueryString["page"] != null)
            page = Int32.Parse(Request.QueryString["page"]);
        int start = (page - 1) * pnumber;
        if (start == 0) start = 1;
        else start++;
        Pager1.Pnumber = pnumber;
        Pager1.Query_string = "";
        Pager1.Total = 16;
        Pager1.Page_link = 4;
        Pager1.nPage = page;
        ObjectDataSource2.SelectParameters.Add("start", start.ToString());
        ObjectDataSource2.SelectParameters.Add("pnumber", pnumber.ToString());
        ObjectDataSource2.UpdateMethod = "updateemployee";
        ObjectDataSource2.InsertMethod = "insertemployee";
        ObjectDataSource2.SelectMethod = "getemployees_ds_pages";
       
        GridView1.DataSource = ObjectDataSource2;
        GridView1.DataBind();
        ObjectDataSource2.SelectParameters.Clear();
}

все равно только со второго раза!

PM MAIL   Вверх
Mymik
Дата 15.11.2007, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



А мне кажется вот тут вот 
Код

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;
    }

надо добавить GridView1.DataBind()... ну типа чтобы изменения в силу вступили smile


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
Servena
Дата 15.11.2007, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 251
Регистрация: 24.7.2007
Где: Днепропетровск

Репутация: 4
Всего: 14



Может еще нужно на всякий случай вызывать базовые методы:
Код

base.Page_Load(sender, e);


И попробуй привязку перенести в самый последний момент - в Рендер или ПреРендер.
PM MAIL   Вверх
Nickname
Дата 15.11.2007, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 1
Всего: 1



Цитата(Mymik @  15.11.2007,  10:39 Найти цитируемый пост)
А мне кажется вот тут вот 
    
Код

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;
    }


надо добавить GridView1.DataBind()... ну типа чтобы изменения в силу вступили smile 


Вот то что надо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0545 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.