Déjeme ir al grano. Mi escenario es el siguiente: tengo campos agregados personalizados para filtrar el RadGrid y el filtrado funciona perfectamente. El problema surge cuando quiero editar el registro usando EditForm dentro de RadGrid. Solía funcionar bien, pero luego tuve algunos problemas para seleccionar la fila correcta (siempre estaba seleccionando la fila incorrecta) así que esto es lo que hice para solucionarlo."No se puede anular el registro de UpdatePanel con el ID 'xxx' ya que no se ha registrado con el ScriptManager ..." en RadGrid al editar el registro
lo tanto, mi RadGrid con filtros ve así:
Lo que hice es el uso de la Sesión que nos ayudará a determinar posteriormente si se inició el filtrado RadGrid origen de datos o que era el valor por defecto uno.
protected void btnSearch_Click(object sender, EventArgs e)
{
Session["SearchKontakti"] = "1";
}
Después de eso tuve que configurar PreRender con if loop para verificar la sesión mencionada anteriormente.
protected void gvKontakti_PreRender(object sender, EventArgs e)
{
int idKontakt = Convert.ToInt32(Request.QueryString["idk"]);
if (Session["SearchKontakti"] == "1")
{
var kontakti = from k in db.Kontakt
select k;
int idTipUsera = Convert.ToInt32(rcbTipUsera.SelectedValue);
int idTvrtka = Convert.ToInt32(rcbTvrtka.SelectedValue);
if (rcbTvrtka.SelectedValue != "0")
{
kontakti = kontakti.Where(k => k.idFirma == idTvrtka);
}
if (rcbTipUsera.SelectedValue != "0")
{
kontakti = kontakti.Where(k => k.idOvlasti == idTipUsera);
}
if (chkAktivan.Checked == true)
{
kontakti = kontakti.Where(k => k.Aktivan == true);
}
else
{
kontakti = kontakti.Where(k => k.Aktivan == false);
}
int idAuthKontakt = Convert.ToInt32(Session["authenticatedUI"]);
if (idKontakt > 0 && idAuthKontakt == idKontakt)
{
gvKontakti.DataSource = from k in kontakti
where k.idKontakt == idKontakt
orderby k.Prezime, k.Ime
select new { Tvrtka = k.Firma.Naziv, k.idKontakt, Naziv = k.Ime + " " + k.Prezime, Funkcija = k.Funkcija, k.Ime, k.Prezime, k.Tel1, k.Tel2, k.Mob1, k.Mob2, k.Email1, k.Email2, k.Fax, k.Adresa1, k.Adresa2, k.Adresa3, k.Grad, k.PostanskiBroj, k.Drzava, k.Biljeske, k.Aktivan, k.Username, k.Password };
}
else if (idKontakt > 0 && idAuthKontakt != idKontakt)
{
gvKontakti.DataSource = from k in kontakti
where k.idKontakt == idKontakt
orderby k.Prezime, k.Ime
select new { Tvrtka = k.Firma.Naziv, k.idKontakt, Naziv = k.Ime + " " + k.Prezime, Funkcija = k.Funkcija, k.Ime, k.Prezime, k.Tel1, k.Tel2, k.Mob1, k.Mob2, k.Email1, k.Email2, k.Fax, k.Adresa1, k.Adresa2, k.Adresa3, k.Grad, k.PostanskiBroj, k.Drzava, k.Biljeske, k.Aktivan, k.Username, k.Password };
}
else
{
gvKontakti.DataSource = from k in kontakti
orderby k.Prezime, k.Ime
select new { Tvrtka = k.Firma.Naziv, k.idKontakt, Naziv = k.Ime + " " + k.Prezime, Funkcija = k.Funkcija, k.Ime, k.Prezime, k.Tel1, k.Tel2, k.Mob1, k.Mob2, k.Email1, k.Email2, k.Fax, k.Adresa1, k.Adresa2, k.Adresa3, k.Grad, k.PostanskiBroj, k.Drzava, k.Biljeske, k.Aktivan, k.Username, k.Password };
}
gvKontakti.DataBind();
}
}
Por lo tanto, esto solucionó mi problema principal, pero me dio otro. Algunos de mis UserControls contienen UpdatePanel y para cada UserControl que lo tiene cada vez que trato de clik Editar botón de RadGrid Recibo el siguiente mensaje: "No se puede cancelar UpdatePanel con ID 'UpdatePanel4' ya que no se ha registrado con ScriptManager. ocurrir si el UpdatePanel se eliminó del árbol de control y luego se agregó de nuevo, lo que no es compatible. Nombre del parámetro: updatePanel "
Lo que me gustaría saber es cómo solucionarlo.
Saludos,
Hrvoje
Esto funcionó para mí cuando estaba moviendo controles dentro de un Panel. Acabo de vincular programáticamente el evento Descargar de cualquier Panel de actualización a su método anterior. Funcionó como un amuleto, no tuvo que registrarlos ni nada. –
Seguí tu respuesta, pero no me ayudó ... – pcs
Lo tengo gracias ...... – pcs