Jag håller på och bygger en funktion för att man ska kunna skapa frågesporter. En frågesport består av en till oändligt många frågor och varje fråga består av två till oändligt många svarsalternativ. För att lösa detta på en och samma sida skapar jag dynamiskt en ny panel för varje ny fråga/svarsalternativ som användaren väljer att lägga till. Innan frågesporten sparas i databasen vill jag göra en kontroll så allt är OK, jag kollar t.ex. att det finns minst en fråga och att alla frågor har minst två svarsalternativ. Hej. problemet är ju det att en valideringskontroll ska man ju binda till en kontroll, t.ex. en textbox. men jag vill ju kolla hur många paneler det finns skapade på en sida och det är ju inget som går att göra med en vanligt valideringskontroll. har kollat lite på CostomValidator eller vad den nu heter. verkar kunna vara något, man skulle ju kunna binda den till ett textfält som ligger på sidan sedan använda en engenskriven funktion för att kolla så det finns tillräckligt med paneler... har dock inte haft tid att testa denna teori Om jag inte har fel är en Panel en DIV och då borde du kunna köra ett enkelt javascript för att kontrollerar hur mänga DIV (Paneler) som existerar på sidan. Hej. En sak du kan göra är ju att bygga en egen validersinSummary kontrol. ValidationSummary
Såhär långt fungerar allt jätte bra men det är ju när man ska presentera informationen om eventuella fel som det blir problem. Det jag har gjort nu är att bara skriva ut i en vanlig label men det hade varit kul att få in felet i en ValidationSummary istället.
Någon som har en lösning på detta? Ska ju sägas att jag inte grötat ner mig så värts i problemet, är säkert jätte enkelt men jag vet inte riktigt vart jag ska börja leta efter informationen :(
//kalleSv: ValidationSummary
I dina validerings controller har du ju något som heter ErrorMessage dessa kommer att presenteras i den ValidationSummary.
<code>
<asp:ValidationSummary
id="valSum"
DisplayMode="BulletList"
runat="server"
HeaderText="You must enter a value in the following fields:"
Font-Name="verdana"
Font-Size="12"/>
</code>
Det är allt du behöver göra. Har du gjort detta fast fått problem?
//Johan NSv: ValidationSummary
Sv: ValidationSummary
<code>
function func_CheckPanels(){
<!-- Hide
var getPanels = document.all.tags('DIV');
var iCounter = 0;
for(i=0; i<getPanels.length; i++){
iCounter += i;
}
alert('Det finns '+iCounter+' st paneler på sidan');
// End Hide -->
}
</code>Sv: ValidationSummary
Sedan kan du använda dig av Page.Controls för att få ut en ControlCollections av de kontroller du är ute efter, i detta fall Panel. Och bygga din hantering serverside.
//Johan N