2011-12-06 2 views
1

У меня есть ссылка в gridview, которая при нажатии будет обновлять БД и должна удалить ее из видимого в gridview. Это также находится в обновленной панели. При нажатии кнопки link DB обновляется, однако gridview никогда не обновляется. И сетка, и кнопки ссылок динамически генерируются.Gridview не обновляется после удаления строки из linkbutton внутри updatePanel

Кнопки привязки создаются следующим образом: 'b' содержит уникальный идентификатор данных в строке.

if (e.Row.RowType == DataControlRowType.DataRow) 
{  
     LinkButton lbRemove = new LinkButton(); 
     lbRemove.ID = "removeLink" + b;    
     lbRemove.Command += new CommandEventHandler(lbRemove_Click); 
     lbRemove.Attributes.Add("onclick","return confirm('Are you sure?');"); 
     ....... 
     e.Row.Cells[6].Controls.Add((Control)lbRemove); 

lbRemove_Click содержит метод для обновления БД и вызвать griview, чтобы связать драмы обновить панель:

protected void lbRemove_Click(object sender, CommandEventArgs e) 
{       
     removeFromUser(Convert.ToInt32(e.CommandArgument.ToString()));    
     loadGridviews(Convert.ToInt32(ViewState["currUserID"])); 
     upnlUserDevices.Update(); 

я попытался создать LinkButton за пределами GridView, используя те же самые свойства, как тот, в gridview. При щелчке он вызывает тот же метод, и он обновляет gridviews, просто не при нажатии на него внутри самого gridview.

Бит застрял на этом, если вы можете помочь? Спасибо!

ответ

0

Так что я узнал, как сделать эту работу.

Мне нужно установить LinkButton .CausesValidation = ложь

Нет эксперт по совсем то, что это делает, но это исправить мою проблему!

0

поставить этот gridview в обновление панели

+0

gridview находится в панели обновления – emong

+0

проверить код повторной привязки gridview –

1

Глядя на ваш код, кажется, будет хорошо. Я могу думать только о двух предложений:

  1. Убедитесь, что ваши делают DataBind к GridView в конце метода loadGridViews()

    YourGridView.DataBind();

  2. Убедитесь, что вы обновляете правильный UpdatePanel после выполнения привязки:

    upnlUserDevices.Update(); // is upnlUserDevices UpdatePanel, который обертывает ваш GridView?

Надеюсь, это поможет.

+0

1. последняя строка в loadgridviews() - это привязка 2. upnluserDevices - панель, содержащая gridview. Странно, что если я создаю кнопку ссылки вне gridview (все еще на панели обновления, которая вызывает тот же метод _click), она работает так, как ожидалось – emong

Смежные вопросы