ScriptManager.RegisterStartupScript
Oi!
Tenho uma página aspx, nela tenho um UpdatePanel com um gridview dentro, que é acionado por um button para popular o gridview. Caso o gridview não contenha dados para popular, quero exibir uma mensagem javascript para o usuário. Ai que está o problema, porque não aparece nada.
Estou usando a seguinte linha de código:
ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "javascript:alert('O sistema não localizou nenhuma venda conforme filtro informado na página!);", true);
Andei pesquisando na net e cheguei a ler algo sobre bug do Ajax quando você tem triggers no seu updatePanel que sejam AsyncPostBackTrigger, é isso mesmo? Como posso resolver este problema?
Carlos Nogueira
Curtidas 0
Respostas
Fabio Mans
20/08/2010
Olá Carlos veja se o código abaixo te ajuda.
Snippetusing System;
using System.Collections.Generic;
public partial class AjaxGridView : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
BindGrid();
}
private void BindGrid()
{
List<string> lista = new List<string>();
lista.Add("TESTETESTE");
lista.Add("TESTETESTE");
lista.Add("TESTETESTE");
lista.Add("TESTETESTE");
lista.Add("TESTETESTE");
lista.Add("TESTETESTE");
lista.Add("TESTETESTE");
if (lista.Count > 0)
{
GridView1.DataSource = lista;
GridView1.DataBind();
}
else
{
emitirAlertaAjax("O sistema não localizou nenhuma venda conforme filtro informado na página!");
}
}
private void emitirAlertaAjax(string strMessage)
{
string msgScript = string.Format("alert('');", strMessage);
System.Web.UI.ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.UpdatePanel1.GetType(), strMessage, msgScript, true);
}
}
Snippetusing System;
using System.Collections.Generic;
public partial class AjaxGridView : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
BindGrid();
}
private void BindGrid()
{
List<string> lista = new List<string>();
lista.Add("TESTETESTE");
lista.Add("TESTETESTE");
lista.Add("TESTETESTE");
lista.Add("TESTETESTE");
lista.Add("TESTETESTE");
lista.Add("TESTETESTE");
lista.Add("TESTETESTE");
if (lista.Count > 0)
{
GridView1.DataSource = lista;
GridView1.DataBind();
}
else
{
emitirAlertaAjax("O sistema não localizou nenhuma venda conforme filtro informado na página!");
}
}
private void emitirAlertaAjax(string strMessage)
{
string msgScript = string.Format("alert('');", strMessage);
System.Web.UI.ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.UpdatePanel1.GetType(), strMessage, msgScript, true);
}
}
GOSTEI 0
Carlos Nogueira
20/08/2010
Fabio,
Funcionou perfeitamente! Muito obrigado!
Tentei descobrir o que fiz de errado, mas não consegui encontrar. Substitui o que eu fiz com o que você passou, e funciona muito bem! rs..
Pode finalizar o chamado. Obrigado!
GOSTEI 0