我在做Silverlight 4
在我的数据库中,我有一个存储过程(有两个参数),它返回行(带有额外的字段)。所以我必须为我的模型上的那些行创建一个复杂的类型。并提供服务来调用该函数导入存储过程。
RIA将自动为我创建匹配的实体(对于复杂类型)和操作。
但是,我不知道如何验证客户端和服务器端的操作参数。例如,参数必须仅为整数(且大于10)或仅为日期时间。
下面的是我的xaml代码。我正在使用DomainDataSource控件而不知道如何验证两个字段参数。它有两个TextBox让用户输入参数值。 Plz帮助我,谢谢
<riaControls:DomainDataSource AutoLoad="False" d:DesignData="{d:DesignInstance my1:USPFinancialAccountHistory, CreateList=true}" Height="0" LoadedData="uSPFinancialAccountHistoryDomainDataSource_LoadedData" Name="uSPFinancialAccountHistoryDomainDataSource" QueryName="GetFinancialAccountHistoryQuery" Width="0" Margin="0,0,705,32">
<riaControls:DomainDataSource.DomainContext>
<my:USPFinancialAccountHistoryContext />
</riaControls:DomainDataSource.DomainContext>
<riaControls:DomainDataSource.QueryParameters>
<riaControls:Parameter ParameterName="fiscalYear" Value="{Binding ElementName=fiscalYearTextBox, Path=Text}" />
<riaControls:Parameter ParameterName="fiscalPeriod" Value="{Binding ElementName=fiscalPeriodTextBox, Path=Text}" />
</riaControls:DomainDataSource.QueryParameters>
</riaControls:DomainDataSource>
<StackPanel Height="30" HorizontalAlignment="Left" Orientation="Horizontal" VerticalAlignment="Top">
<sdk:Label Content="Fiscal Year:" Margin="3" VerticalAlignment="Center" />
<TextBox Name="fiscalYearTextBox" Width="60" />
<sdk:Label Content="Fiscal Period:" Margin="3" VerticalAlignment="Center" />
<TextBox Name="fiscalPeriodTextBox" Width="60" />
<Button Command="{Binding Path=LoadCommand, ElementName=uSPFinancialAccountHistoryDomainDataSource}" Content="Load" Margin="3" Name="uSPFinancialAccountHistoryDomainDataSourceLoadButton" />
</StackPanel>
<telerik:RadGridView ItemsSource="{Binding ElementName=uSPFinancialAccountHistoryDomainDataSource, Path=Data}" Name="uSPFinancialAccountHistoryRadGridView" Grid.Row="1"
IsReadOnly="True"
DataLoadMode="Asynchronous"
AutoGenerateColumns="False"
ShowGroupPanel="False">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="Account Number" DataMemberBinding="{Binding AccountNumber}"/>
<telerik:GridViewDataColumn Header="Department Number" DataMemberBinding="{Binding DepartmentNumber}"/>
<telerik:GridViewDataColumn Header="Period code" DataMemberBinding="{Binding PeriodCode}" />
<telerik:GridViewDataColumn Header="Total Debit" DataMemberBinding="{Binding TotalDebit}" DataFormatString="{}{0:C2}"/>
<telerik:GridViewDataColumn Header="Total Credit" DataMemberBinding="{Binding TotalCredit}" DataFormatString="{}{0:C2}"/>
<telerik:GridViewDataColumn Header="Period Total" DataMemberBinding="{Binding PeriodTotal}" DataFormatString="{}{0:C2}"/>
<telerik:GridViewDataColumn Header="Year To Date" DataMemberBinding="{Binding YearToDate}" DataFormatString="{}{0:C2}"/>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
答案 0 :(得分:0)
如果您遵循建议的做法,RIA服务将自动将它们考虑在客户端和服务器上(即代码将在具有相同属性的客户端上生成,并且它们将得到尊重)。有关如何处理验证,请参阅该人本人this article。