2010-09-18 60 views
0

我做的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

如果按照建议的做法,RIA Services将自动把它们兼顾了客户端和服务器上(即代码将在客户端上生成具有相同的属性和它们将受到尊重)。见this article该男子自己如何处理验证。

+0

嗨亚历克斯,我想验证存储过程的类型化的参数是财政部文本框和财政部文本框的文本在我的情况。所以我需要在我的复杂类型的元类上添加一些属性? – Tai 2010-09-18 21:42:45

相关问题