Как программно активировать ссылку в RadGrid через JavaScript

Проблема с выполнением события LinkButton после закрытия модального окна

Использую RadGrid для отображения данных. В каждой строке есть кнопка-ссылка, которая открывает модальное окно в зависимости от определенных условий. После закрытия окна через кнопку закрытия нужно продолжить выполнение события этой кнопки-ссылки.

Серверный код:

protected void dataGrid_ItemDataBound(object sender, GridItemEventArgs e)
{
    if (e.Item.ItemType == GridItemType.AlternatingItem || e.Item.ItemType == GridItemType.Item)
    {
        LinkButton btnAction = ((LinkButton)gridItem.FindControl("btnAction"));
        ModalPopupExtender modalDialog = (ModalPopupExtender)e.Item.FindControl("modalDialog");
        Image btnCloseModal = (Image)e.Item.FindControl("btnCloseModal");
        modalDialog.TargetControlID = btnAction.ID;
        btnAction.Attributes.Add("onclick", "return false;"); // предотвращаем postback для показа popup
        btnCloseModal.Attributes.Add("onclick", "continueAction('" + btnAction.ClientID + "')");
    }
}

JavaScript функция:

function continueAction(controlId)
{
    document.getElementById(controlId).removeAttribute("onclick"); // удаляем атрибут onclick с LinkButton
    document.getElementById(controlId).click(); // запускаем событие click
}

Проблема в том, что атрибут onclick не удаляется и событие LinkButton не выполняется. Как правильно решить эту задачу?

Пробуй __doPostBack вместо click(). Что-то вроде __doPostBack(controlId.replace('_', '$'), ''); - часто работает лучше обычного клика по LinkButton. У тебя postback блокируется через return false, может в этом проблема?

Попробуй __doPostBack вместо click(). LinkButton в RadGrid использует свой postback механизм, который не работает с обычным click.

function continueAction(controlId) {
    __doPostBack(controlId, '');
}

Еще лучше - убери return false из onclick и вызывай __doPostBack напрямую без удаления атрибутов. Работает надежнее чем возня с onclick.

У меня была такая же фигня с RadGrid! Попробуй через eval() вызвать событие - обходит проблемы с onclick. В continueAction делай так: eval(document.getElementById(controlId).href); если href есть. Или через setAttribute замени onclick на новый - element.setAttribute('onclick', '__doPostBack(...)'). Ещё можно вообще не блокировать postback, а контролировать условием на сервере в событии команды.