Gustavo Neves Alves

junho 30, 2009

Trabalhando ClientSide com CommandField

Filed under: Asp.Net — Tags:, , , , — gustt @ 7:24 pm
Como o GridView está sendo renderizado.

Como o GridView está sendo renderizado.

Aqui na fábrica hoje precisei fazer algo que não estava habituado logo lá estava eu correndo atrás de MSDN e afins para conseguir desenvolver. A situação é a seguinte (bem simples até), tenho um controle do tipo GridView, o mesmo tem N colunas e uma delas é do tipo CommandField, que é um TEMPLANTE pré-moldado do controle GridView para trabalhar comandos de CRUD como “Delete”, “Edit”, “Insert”, “Save” precisava inserir no OnClientClick deste Command uma ação de javascript: confim(‘’);. Convencionalmente eu pegaria este CommandField e o transformaria em um TampleteField, onde eu tenho mais controle sobre o mesmo, porém na minha situação atual sou obrigado a manter o CommandField por motivos de padronização e arquitetura de Framework.

O CommandField é configurado da seguinte forma:

<asp:CommandField InsertVisible=”False” ShowCancelButton=”False” ShowEditButton=”False” SelectText=”Definir parecerista” ShowSelectButton=”True” HeaderText=”” />

Quando o usuário clica em “Definir parecerista” eu primeiro rodo o javascript: return confirm(string); para certificar de que ele tem ciência do que está fazendo.

Bem vamos ao código, dentro do evento RowDataBound coloquei o seguinte código:

protected void MeuGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{

if (e.Row.RowType != DataControlRowType.DataRow) return;
if (e.Row.Controls[0].Controls.Count > 0)
(e.Row.Controls[0].Controls[0] as LinkButton).Attributes.Add(“onclick”,
“javascript: return confirm(‘Você está prestes a definir este parecerista como um dos pareceristas deste trabalho, deseja continuar?’);”);

}

Mensagem de confirmação

Mensagem de confirmação

Ae galera bem simples, acho que só não me dei o trabalho de parar e pensar, mas ta valendo compartilhando ai caso mais alguem tenha a mesma dúvida.

Crie um website ou blog gratuito no WordPress.com.