UpdatePanel vložený do FormView   zodpovězená otázka

ASP.NET WebForms

Narazil jsem na problém s datbabindingem pokud je vložený UpdatePanel do FormView. Komponenty si bez problémů načtou hodnoty z SqlDataSource, ale při pokusu o INSERT nebo UPDATE zobrazí SqlDataSource chybu: Must declare the scalar variable "@DisplayName".

Proměnná @DisplayName je "databindnuta" uvnitř UpdatePanelu. Pokud UpdatePanel odstraním, tak uložení proběhne.

Je to běžné chování UpdatePanelu? Pokud ano, tak lze nějak odstranit? (pokud možno nějak genericky, abych si mohl upravit komponentu FormView nebo UpdatePanel a nemusel to ručně ošetřovat na všech stránkách.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Vazba Bind bohužel nefunguje, pokud komponenta není přímo v naming containeru šablony.

Řešením je použít ControlParameter. Není to příliš elegantní, ale jinak to nejde.

<asp:LinqDataSource ...>
    <UpdateParameters>
        <asp:ControlParameter Name="DisplayName" ControlID="FormView1$UpdatePanel1$DisplayNameTextBox" PropertyName="Text" />
    </UpdateParameters>
</asp:LinqDataSource>
<asp:FormView ID="FormView1" ...>
    <EditItemTemplate>
        ...
        <asp:UpdatePanel ID="UpdatePanel1" ...>
            <ContentTemplate>
                <asp:TextBox ID="DisplayNameTextBox" ... />
...
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Díky za odpověď. To je celkem dobré řešení, hlavně jsem nechtěl doplňovat parametry v nějaké události FormView nebo SqlDataSource. Nevěděl jsem, že je možné odkazovat se na komponenty tímto způsobem (pomocí $).

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback