silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight 4 + RIA Services之商业应用系列----3 DataForm使用大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

系列文章:  part1: 如何使用RIA services part2: RIA services更新和验证 part3:rIA services数据新增 part4:皮肤的更改 part5:报表的展示 part6:Endpoint的设置 part7:如何使用RIA service Class Library  part8:url重写和界面友好 1.使用DataForm来新增记录: 使用Data

系列文章@H_607_25@

@H_607_25@

 part1: 如何使用RIA Services@H_607_25@

part2: RIA Services更新和验证@H_607_25@

part3:RIA Services数据新增@H_607_25@

part4:皮肤的更改@H_607_25@

part5:报表的展示@H_607_25@

part6:Endpoint的设置@H_607_25@

part7:如何使用RIA Service Class Library @H_607_25@

part8:url重写和界面友好@H_607_25@

1.使用DataForm来新增记录:@H_607_25@

使用DataForm新增记录是个很不错的功能@H_607_25@

首先你得把System.Windows.Controls.Data.DataForm.Toolkit引用到项目中@H_607_25@

 @H_607_25@

Silverlight 4 + RIA Services之商业应用系列----3 DataForm使用@H_607_25@@H_607_25@

Silverlight 4 + RIA Services之商业应用系列----3 DataForm使用@H_607_25@@H_607_25@@H_607_25@

然后在上图所示区域放入一个DataForm@H_607_25@

设置DataForm属性如下:@H_607_25@

@H_673_213@    <@H_673_213@dataform:@H_673_213@DataForm x:Name="dataForm" Grid.column="1" Itemssource="{@H_673_213@Binding ElementName=restaurantDomainDatasource, Path=Data}" />@H_607_25@

现在运行下就能看到DataForm显示了。Yeah,It’s Work…..@H_607_25@

Silverlight 4 + RIA Services之商业应用系列----3 DataForm使用@H_607_25@@H_607_25@@H_607_25@

你会看到这里只有Cancel按钮,我们很希望加一个Submit按钮。不过就是现在也可以更新数据了,使用DataForm EditEnd事件。DataForm提供了几个功能可以自定义模板,@H_607_25@

 EditTemplate,NewItemTemplateReadonlyTemplate三个模板。@H_607_25@

我们下面就定义几个模板来试试。@H_607_25@

page.resource添加如下代码@H_607_25@

@H_673_213@     <@H_673_213@DataTemplate x:Key="RestuarantReadTemplate">@H_607_25@

@H_673_213@            <@H_673_213@StackPanel>@H_607_25@

@H_673_213@                <@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                    <@H_673_213@TextBox  Text="{Binding Address,@H_116_421@mode=TwoWay}" />@H_607_25@

@H_673_213@                </@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                    <@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                    <@H_673_213@TextBox Text="{@H_673_213@Binding City,@H_751_225@mode=TwoWay}"/>@H_607_25@

@H_673_213@                </@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                <@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                    <@H_673_213@TextBox Text="{@H_673_213@Binding ContactName,@H_751_225@mode=TwoWay}"/>@H_607_25@

@H_673_213@                </@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                <@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                    <@H_673_213@TextBox Text="{@H_673_213@Binding Contacttitle,@H_751_225@mode=TwoWay}"/>@H_607_25@

@H_673_213@                </@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                <@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                    <@H_673_213@TextBox Text="{@H_673_213@Binding Fax,@H_751_225@mode=TwoWay}"/>@H_607_25@

@H_673_213@                </@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                <@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                    <@H_673_213@TextBox Text="{@H_673_213@Binding ID,@H_751_225@mode=TwoWay}"/>@H_607_25@

@H_673_213@                </@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                <@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                    <@H_673_213@TextBox Text="{@H_673_213@Binding Name,@H_751_225@mode=TwoWay}"/>@H_607_25@

@H_673_213@                </@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                <@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                    <@H_673_213@TextBox Text="{@H_673_213@Binding PostalCode,@H_751_225@mode=TwoWay}"/>@H_607_25@

@H_673_213@                </@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@            </@H_673_213@StackPanel>@H_607_25@

@H_673_213@        </@H_673_213@DataTemplate>@H_607_25@

 @H_607_25@

然后修改DataForm如下:@H_607_25@

<@H_673_213@dataform:@H_673_213@DataForm x:Name="dataForm" Grid.column="1" Itemssource="{@H_673_213@Binding ElementName=restaurantDomainDatasource, Path=Data}" ReadOnlyTemplate="{@H_673_213@Staticresource RestuarantReadTemplate}" />@H_607_25@

运行下看结果:@H_607_25@

Silverlight 4 + RIA Services之商业应用系列----3 DataForm使用@H_607_25@@H_607_25@@H_607_25@

 @H_607_25@

因为只有查看模板,所以现在不能编辑也不能添加,只允许删除操作。@H_607_25@

 @H_607_25@

下面我就添加上编辑和新增模板。@H_607_25@

新智数据模板:@H_607_25@

@H_673_213@        <@H_673_213@DataTemplate x:Key="RestuaranTinsertTemplate">@H_607_25@

@H_673_213@            <@H_673_213@StackPanel>@H_607_25@

@H_673_213@                <@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                    <@H_673_213@TextBox  Text="{Binding Address,@H_116_421@mode=TwoWay}" />@H_607_25@

@H_673_213@                </@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                <@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                    <@H_673_213@TextBox Text="{@H_673_213@Binding City,@H_751_225@mode=TwoWay}"/>@H_607_25@

@H_673_213@                </@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                <@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                    <@H_673_213@TextBox Text="{@H_673_213@Binding ContactName,@H_751_225@mode=TwoWay}"/>@H_607_25@

@H_673_213@                </@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                <@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                    <@H_673_213@TextBox Text="{@H_673_213@Binding HomePage,@H_751_225@mode=TwoWay}"/>@H_607_25@

@H_673_213@                </@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                <@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                    <@H_673_213@TextBox Text="{@H_673_213@Binding ImagePath,@H_751_225@mode=TwoWay}"/>@H_607_25@

@H_673_213@                </@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                <@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                    <@H_673_213@TextBox Text="{@H_673_213@Binding Phone,@H_751_225@mode=TwoWay}"/>@H_607_25@

@H_673_213@                </@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                <@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                    <@H_673_213@TextBox Text="{@H_673_213@Binding Region,@H_751_225@mode=TwoWay}"/>@H_607_25@

@H_673_213@                          </@H_673_213@toolkit:@H_673_213@datafield>@H_607_25@

@H_673_213@                <@H_673_213@Button Content="Submit"></@H_673_213@Button>@H_607_25@

@H_673_213@            </@H_673_213@StackPanel>@H_607_25@

@H_673_213@        </@H_673_213@DataTemplate>@H_607_25@

 @H_607_25@

再次运行,就会看到新增记录的按钮可以使用了。@H_607_25@

 @H_607_25@

上面是使用DataForm控件来进行了。那么,当我们完成了编辑操作,如何让服务器段完成更新呢?需要用dataformEditEnded事件.@H_607_25@

当事件完成时,我们需要RIA service的数据源向服务器提交数据。事件代码如下:@H_607_25@

if (e.EditAction == DataFormEditAction.Cancel)@H_607_25@

                restaurantDomainDatasource.SubmitChanges();@H_607_25@

 @H_607_25@

这样就能数据的及时更新。@H_607_25@

 @H_607_25@

2.使用自定义的数据模板来完成更新。@H_607_25@

纯属个人实验,如果你有兴趣可以在此基础上完善。@H_607_25@

首先需要定义一个Custom Restaurant模型, 也就是@H_313_1652@model。它包含需要填写的所有字段。@H_607_25@

然后定义一个自定义DataForm,当然和SilverLightcontrol ToolkitDataForm基本没联系。@H_607_25@

代码比较多,我贴个类结构图把。@H_607_25@

Silverlight 4 + RIA Services之商业应用系列----3 DataForm使用@H_607_25@@H_607_25@@H_607_25@

当上面这个模板的数据提交时,我们如何使用Domainservice回传数据呢?@H_607_25@

我自己对Invoke方法不熟悉,我就用本办法:@H_607_25@

 @H_607_25@

Silverlight 4 + RIA Services之商业应用系列----3 DataForm使用@H_607_25@@H_607_25@@H_607_25@

把每个属性的值赋值给Restaurant每个属性的值。最后来个SubmitChanges().就完事了。@H_607_25@

大佬总结

以上是大佬教程为你收集整理的Silverlight 4 + RIA Services之商业应用系列----3 DataForm使用全部内容,希望文章能够帮你解决Silverlight 4 + RIA Services之商业应用系列----3 DataForm使用所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。