Validátor ASCX-ben

Az ASP.NET 2.0 óta be lehet állítani, hogy melyik validátor milyen gomb megnyomása esetén ellenőrizzen. Ez egy nagyon hasznos tulajdonság: lehetővé teszi, hogy két feltöltő/szerkesztő felület is lehessen egy oldalon, amik mind validáltak, és nem szólnak bele egymás életébe. Azt, hogy mely validátorok tartoznak egy csoportba, és mely gombokra aktivizálódnak a ValidationGroup propertyjben lehet megadni. Azonos ValidationGroup = közös működés. A gond akkor kezdődik, ha többször felhasznált oldal-elemeket készítünk, például ASCX-eket. Ekkor ugyanis, ha több azonos típusú ASCX-et teszünk egy oldalra (pl.: sok FileFeltoltes.ascx-et), akkor azok gyermekvezérlői és validátorai egyszerre izgulnak – mármint mindegyik ASCX-é egyszerre (így csak akkor lehet egy fájlt feltölteni, ha mindegyik FileFeltoltes.ascx valid).

A probléma oka, hogy az ASCX-ekről az oldalba bekerülő vezérlők ValidationGroupja azonos, emiatt azok egyszerre aktivizálódnak. Az ütközésfeloldáshoz ezt a ValidationGroup egyezést kell megszüntetni. Az egyik lehetséges módszer, hogy az ASCX-eken lévő vezérlők ValidationGroupjába belekódoljuk az ASCX azonosítóját. Ekkor a különböző nevű ASCX-ek validátorai különböző esetekben aktivizálódnak. Ez a belekódolás csak futási időben tehető meg, egy lehetséges implementációt mutat az alábbi kódrészlet:

<asp:TextBox ID="EvTextBox" runat="server"
    Text='<%# Bind("Ev") %>'
    CssClass="rovid"
    ValidationGroup='<%# "Update_" + this.ID %>' />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
    ErrorMessage="*"
    ValidationGroup='<%# "Update_" + this.ID %>'
    ControlToValidate="EvTextBox" />
<asp:Button ID="Button3" runat="server" Text="Módosítás"
    CausesValidation="true"
    ValidationGroup='<%# "Update_" + this.ID %>'
    CommandName="Update" />


Dávid Zoltán

Dávid Zoltán Mérnök Informatikusként végeztem a BME-n, jelenleg webfejlesztéssel és gépi tanulással foglalkozom.

2010.03.10. 20:00:01 | Permalink | Hozzászólások: 0 | Tárgyszavak:


  • Adatok bekérése SharePoint Designeres workflowban

    Balássy György (MS RD, ASP.NET MVP, MCTS) SharePointos workflow fejlesztéshez igen jól használható eszköz a SharePoint Designer (SPD), de tagadhatatlan, hogy néha nehéz elsőre eligazodni a felhasználói felületen. Az egyik ilyen “néha” akkor jön velünk szembe, amikor a folyamat futása során adatokat szeretnénk bekérni a felhasználóktól. Tovább »
  • Job Aids for Server Core

    Balássy György (MS RD, ASP.NET MVP, MCTS) A Server Core konfigurálásához létezik Getting Started Guide, aminek a webes verziója nehézkesen kereshető, a letölthető verziója pedig 53 oldalas, ami gyakran túl sok ahhoz, hogy csak úgy gyorsan kilessük belőle az éppen szükséges parancsot. A legfontosabb parancsok összefoglalásához született most egy 1 oldalas Job Aid, ami sokkal áttekinthetőbb. Tovább »


Írja meg Ön is véleményét!


Hozzászólásokat csak regisztrált, bejelentkezett felhasználóktól tudunk elfogadni!

Hozzászólások