2011-07-07 2 views
1

Я пытаюсь удалить строку из моего gridview вручную, потому что по какой-то причине, когда я удаляю элемент из базы данных и привязки данных, gridview по-прежнему isn ' t. Вот код, который я использую:Удаление строки из Gridview в Codebehind (получение исключения?)

try 
{ 
    gvCertifications.DeleteRow(int.Parse(commandArgs[1])); 
} 
catch (HttpException) 
{ 
    //error 
} 

и по какой-то причине я всегда сталкиваюсь с этим HttpException? Я попытался размещая эту команду как до и после моего DataBind (потому что MSDN говорит, что HttpException происходит, когда GridView не привязан к источнику данных)

Элемент GridView уже привязан к источнику данных при загрузке , так что я не знаю, почему я получал бы это исключение ...

Кроме того, в случае, если это помогает, вот как я получаю commandArgs[]:

String[] commandArgs = e.CommandArgument.ToString().Split('|'); //before in same function as the try/catch block 

и вот commandargs из. aspx file:

CommandArgument='<%#Eval("ThisId") + "|" + Container.DataItemIndex %>' 
+0

Какое имя CommandName вы упомянули? и на каком событии вы написали этот код? – NaveenBhat

+0

'CommandName =" delete "' и событие 'gvCertifications_RowCommand' –

+0

ok.. then, вы написали запрос на удаление по свойству' deletecommand' DataSource? – NaveenBhat

ответ

0

Хотя это не обязательно отвечать на мой вопрос, он решает вопрос, который я пытался взломать вокруг с ним:

от вопроса:

»... по какой-то причине, когда я удалить элемент из базы данных и DataBind, то GridView еще не обновляется ...»

GridViews имеют предопределенные команды настройки, такие как„выбрать“,„изменить“и„удалить“. Когда я пытаюсь определить свое собственное событие для запуска с именем команды «delete», программа попытается запустить часть моего события вместе с предопределенным событием. Это то, что вызывало проблемы.

0

Если вы использовали sqldatasource в качестве DataSource (как в MSDN Example), то вам необходимо написать запрос на удаление на deletecommand свойство этого. Или, если вы использовали DataTabe как DataSource, вам необходимо обработать событие RowDeleting события сетки. Проверьте образец this link.

+0

Я использую пользовательские команды, то есть 'GridView_RowCommand (...) {if (commandName == 'delete') {...}}' –

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