Как выполнить проверку на стороне клиента и сервера для службы, которая является процедурой хранилища (возвращает сложный тип) - PullRequest
0 голосов
/ 18 сентября 2010

Я делаю Silverlight 4

В моей базе данных есть процедура сохранения (имеющая два параметра), которая возвращает строки (с дополнительными полями).Поэтому я должен сделать сложный тип для этих строк в моих моделях.И создание службы для вызова этой функции импортирует хранимую процедуру.

RIA автоматически создаст соответствующий объект (для сложного типа) и операцию для меня.

Однако я не знаю, как проверить параметры операции на стороне клиента и сервера.Например, параметр должен быть только целым числом (и больше 10) или только датой / временем.

ниже - мой код xaml.Я использую элемент управления DomainDataSource и не знаю, как проверить параметр двух полей. Он имеет два TextBox, чтобы позволить пользователям вводить значения параметров.Пожалуйста, помогите мне, спасибо

 <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>

1 Ответ

0 голосов
/ 19 сентября 2010

Если вы будете следовать рекомендованным методам, RIA Services автоматически примет их во внимание как на клиенте, так и на сервере (т. Е. На клиенте будет сгенерирован код с одинаковыми атрибутами, и они будут соблюдены).См. эту статью о человеке о том, как справиться с проверкой.

...