Hãy để tôi cắt theo đuổi. Kịch bản của tôi là như sau: Tôi có các lĩnh vực tùy chỉnh được thêm vào để lọc RadGrid và lọc hoạt động hoàn hảo. Vấn đề xảy ra khi tôi muốn chỉnh sửa bản ghi bằng cách sử dụng EditForm bên trong RadGrid. Nó được sử dụng để làm việc tốt, nhưng sau đó tôi đã có một số vấn đề với việc lựa chọn hàng phải (tôi đã luôn luôn nhận được hàng sai chọn) vì vậy đây là những gì tôi đã làm để sửa chữa nó."Không thể hủy đăng ký UpdatePanel với ID 'xxx' vì nó không được đăng ký với ScriptManager ..." trong RadGrid trong khi chỉnh sửa bản ghi
Vì vậy, RadGrid của tôi với các bộ lọc như sau:
Những gì tôi đã làm là sử dụng phiên đó sẽ giúp chúng ta xác định sau này nếu các lọc RadGrid DataSource được thực hiện hoặc là mặc định một.
protected void btnSearch_Click(object sender, EventArgs e)
{
Session["SearchKontakti"] = "1";
}
Sau đó tôi phải đặt PreRender với vòng lặp if để kiểm tra Phiên được đề cập trước đó.
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();
}
}
Vì vậy, điều này đã khắc phục được vấn đề chính của tôi, nhưng đã cho tôi một vấn đề khác. Một số UserControls của tôi chứa UpdatePanel và cho mỗi UserControl có nó bất cứ khi nào tôi cố gắng bấm nút Chỉnh sửa từ RadGrid tôi nhận được thông báo sau: "Không thể hủy đăng ký UpdatePanel với ID 'UpdatePanel4' vì nó không được đăng ký với ScriptManager. xảy ra nếu UpdatePanel bị xóa khỏi cây điều khiển và sau đó được thêm lại, không được hỗ trợ Tên thông số: updatePanel "
Điều tôi muốn biết là cách khắc phục.
Kính trọng,
Hrvoje
Điều này làm việc cho tôi khi tôi đang di chuyển các điều khiển bên trong Bảng điều khiển. Tôi chỉ lập trình ràng buộc sự kiện Unload của bất kỳ UpdatePanels nào vào phương thức của bạn ở trên. Làm việc như một sự quyến rũ - không phải đăng ký lại hay bất cứ điều gì. –
Tôi đã làm theo câu trả lời của bạn, nhưng nó đã không giúp tôi .. – pcs
Có cảm ơn ...... – pcs