ik heb een gridview met een linqdatasource.
daarboven staan meerdere textboxen / dropdownlists
waaronder textbox tbOrderNr en dropdownlist ddlAfdeling
als er geen ordernummer word ingevoerd haal ik de whereparameter voor ordernr weg.
dat gaat prima.
het probleem is met de dropdownlist afdeling
die heeft 3 opties: Alle, Afdeling1, Afdeling2
indien geselecteerd:
Alle -> alle ordernummers
Afdeling1 -> ordernummer 200000 t/m 399999
afdeling2 -> ordernummer 400000 t/m 499999
ik krijg dit niet goed voor mekaar met een linqdatasource
Hoe kan ik dynamisch een parameter toevoegen/aanpassen/verwijderen
linqdatasource code:
voeg ik dan deze code toe:
dan krijg ik deze foutemelding:
Geen eigenschap of veld Ordervan bestaat in type Inspection
en die wordt geworpen door e.WhereParameters.Remove("Ordervan");
daarboven staan meerdere textboxen / dropdownlists
waaronder textbox tbOrderNr en dropdownlist ddlAfdeling
als er geen ordernummer word ingevoerd haal ik de whereparameter voor ordernr weg.
C#:
1
2
3
4
5
| protected void LinqDataSource_Selecting(object sender, LinqDataSourceSelectEventArgs e) { if (tbOrderNr.Text.Length == 0) e.WhereParameters.Remove("Ordernumber"); } |
dat gaat prima.
het probleem is met de dropdownlist afdeling
die heeft 3 opties: Alle, Afdeling1, Afdeling2
indien geselecteerd:
Alle -> alle ordernummers
Afdeling1 -> ordernummer 200000 t/m 399999
afdeling2 -> ordernummer 400000 t/m 499999
ik krijg dit niet goed voor mekaar met een linqdatasource
Hoe kan ik dynamisch een parameter toevoegen/aanpassen/verwijderen
linqdatasource code:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| <asp:LinqDataSource ID="InspectionsLinqDataSource" runat="server" ContextTypeName="VFP.Data.MES.MESDataContext" EnableDelete="True" TableName="Inspections" Where="StatusDate >= @StatusDate && StatusDate <= @StatusDate1 && Ordertype_ID == @Ordertype_ID && Ordernumber == @Ordernumber && Status_ID == @Status_ID && Ordernumber > @Ordervan && Ordernumber < @Ordertot" OrderBy="Ordertype_ID, Ordernumber, Orderline" onselecting="InspectionsLinqDataSource_Selecting"> <WhereParameters> <asp:ControlParameter ControlID="tbDatumVan" Name="StatusDate" PropertyName="Text" Type="DateTime" /> <asp:ControlParameter ControlID="tbDatumTm" Name="StatusDate1" PropertyName="Text" Type="DateTime" /> <asp:ControlParameter ControlID="ddlOrderType" Name="Ordertype_ID" PropertyName="SelectedValue" Type="Int16" /> <asp:ControlParameter ControlID="tbOrderNr" DefaultValue="0" Name="Ordernumber" PropertyName="Text" Type="Decimal" /> <asp:ControlParameter ControlID="ddlStatus" DefaultValue="0" Name="Status_ID" PropertyName="SelectedValue" Type="Int16" /> <asp:Parameter DefaultValue="300000" Name="Ordervan" Type="Decimal" /> <asp:Parameter DefaultValue="500000" Name="Ordertot" Type="Decimal" /> </WhereParameters> </asp:LinqDataSource> |
voeg ik dan deze code toe:
C#:
1
2
3
4
5
6
7
8
9
10
| if (ddlUnit.SelectedItem.Text.ToLower() == "alle") { e.WhereParameters.Remove("Ordervan"); e.WhereParameters.Remove("Ordertot"); } else { e.WhereParameters["Ordervan"] = "300000"; e.WhereParameters["Ordertot"] = "500000"; } |
dan krijg ik deze foutemelding:
Geen eigenschap of veld Ordervan bestaat in type Inspection
en die wordt geworpen door e.WhereParameters.Remove("Ordervan");
[ Voor 13% gewijzigd door bastv op 10-09-2008 11:43 ]