2010-09-18 59 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

相關問題