Stel je onderstaande code voor:
Met, om te testen de volgende datasource:
Nu wordt in het ItemCommand de validator getriggerd. Alleen wil ik die per DataGridRow hebben. Zodra er nu geklikt wordt, worden alle txtName's gevalideerd, terwijl ik alleen de validatie op de specifieke DataGridRow wil hebben, en niet allemaal.
Ik dacht simpel te zijn, door een validationgroup aan de te valideren controls te hangen:
Als laatste mogelijkheid ben ik door de ItemCreated en de ItemDataBound heen gestepped om te zien of ik daar de specifieke controls voorbij zag komen, zodat ik er een unieke validationgroup aan kon hangen, maar ik zag de controls niet in de controlcollection staan. Nu betwijfel ik of dat ik de way to go was, maar goed.
edit
Nog even verder geprutst in het ItemCommand: (en op het Validator control "EnableClientScript" op false gezet)
Met deze code kan ik wel bij de textbox komen, alleen zou ik eventjes niet weten hoe ik de betreffende textbox 'invalid' kan maken.
</edit>
Heeft iemand een tip voor bovenstaand issue of ik kan ik het wel vergeten?
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| <asp:DataGrid ID="dgrid" runat="server" AutoGenerateColumns="false"> <Columns> <asp:TemplateColumn> <ItemTemplate> <label>Naam: </label> <asp:RequiredFieldValidator ID="NameRequired" runat="server" ErrorMessage="Name is required" ControlToValidate="txtName">* </asp:RequiredFieldValidator> <asp:TextBox ID="txtName" runat="server"></asp:TextBox> <asp:Button ID="btnSend" runat="server" Text="Send Information" /> <br /> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid> |
Met, om te testen de volgende datasource:
C#:
1
2
3
| int[] amount = new int[2]; dgrid.DataSource = amount; dgrid.DataBind(); |
Nu wordt in het ItemCommand de validator getriggerd. Alleen wil ik die per DataGridRow hebben. Zodra er nu geklikt wordt, worden alle txtName's gevalideerd, terwijl ik alleen de validatie op de specifieke DataGridRow wil hebben, en niet allemaal.
Ik dacht simpel te zijn, door een validationgroup aan de te valideren controls te hangen:
C#:
Dit zorgt er nog steeds voor dat alle txtName's gevalideerd worden.1
| ValidationGroup="melp" |
Als laatste mogelijkheid ben ik door de ItemCreated en de ItemDataBound heen gestepped om te zien of ik daar de specifieke controls voorbij zag komen, zodat ik er een unieke validationgroup aan kon hangen, maar ik zag de controls niet in de controlcollection staan. Nu betwijfel ik of dat ik de way to go was, maar goed.
edit
Nog even verder geprutst in het ItemCommand: (en op het Validator control "EnableClientScript" op false gezet)
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| foreach (Control c in e.Item.Controls) { foreach (Control item in c.Controls) { TextBox tb = item as TextBox; if (tb != null) { if (tb.ID=="txtName" && tb.Text == "") { } } } } |
Met deze code kan ik wel bij de textbox komen, alleen zou ik eventjes niet weten hoe ik de betreffende textbox 'invalid' kan maken.
</edit>
Heeft iemand een tip voor bovenstaand issue of ik kan ik het wel vergeten?
[ Voor 14% gewijzigd door TeeDee op 20-11-2007 21:51 ]
Heart..pumps blood.Has nothing to do with emotion! Bored