私を追いかけよう。私のシナリオは次のとおりです。RadGridをフィルタリングするカスタムフィールドが追加され、フィルタリングが完全に機能します。問題は、RadGrid内でEditFormを使用してレコードを編集する場合です。それはうまく動作していましたが、正しい行を選択する際にいくつか問題がありました(私は常に間違った行を選択していました)ので、これを修正しました。私が何をしたかレコードを編集中にRadGridの "ScriptManagerに登録されていないためUpdatePanelを 'xxx'に登録解除できません..."
がフィルタリングRadGrid DataSourceが開始された場合は、後で決定するために私たちを助けるセッションを使用することですか、それがデフォルトだった:
ので、フィルターと私のRadGridは次のようになります1。
protected void btnSearch_Click(object sender, EventArgs e)
{
Session["SearchKontakti"] = "1";
}
その後、前述のセッションをチェックするために、ループを使用してPreRenderを設定する必要がありました。
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();
}
}
これで私の主な問題は解決しましたが、もう1つ教えてください。私のUserControlsにはUpdatePanelが含まれていて、RadGridのEditボタンをクリックしてみると、UserControlごとにUserControlがあります。"ScriptPanelに登録されていないため、UpdatePanelをUpdatePanel4からアンロックできません。 。UpdatePanelの「
私が知りたいのですが、それを修正する方法である:のUpdatePanelコントロールツリーから削除し、以降のサポートされていない パラメータ名を、再び追加された場合に発生します。
よろしく、
Hrvoje
は、これは私がパネル内のコントロールを動かした時に私のために働きました。私はちょうど上記のあなたのメソッドに任意のUpdatePanelsのアンロードイベントをプログラム的にバインドしました。魅力のように働いた - それらを戻すか何かを登録する必要はありませんでした。 –
私はあなたの答えに従ったが、それは私を助けなかった.. – pcs
感謝...... – pcs