SharePoint开发详解:一个Feature中使用SPGridView的几个Tips

根据上面一篇随笔所介绍的PC购买流程的项目,在项目中,需要有一个生成 订单的功能,能够使得Admin很方便的在获得批准的申请中选取一些来生成订单 ,要求界面操作简单明了,大概的效果图如下:

开发详解:一个Feature中使用SPGridView的几个Tips-">

点击checkbox,自动计算当前订单的总价值,点击按钮,生成订单。

有此想到了用SPGridView这个现成的控件来完成,以前也用过这个控件,其 实和GridView没什么大区别。这里就简单介绍一下了:

首先Create 一个WebPart

在CreateChildControls()中可以设置SPGridView 的数据源和属性,添加 Field等等。

但是CheckBox这一列,必须自己自定义一个模板类来生成,下面是我们自定 义的CheckBox模板类,它实现了ITemplate接口:

class CheckBoxTemplateField:ITemplate
     {
         string id;
         public EventHandler OnCheck = null;
         public CheckBoxTemplateField(string chbId,  EventHandler checkEvent)
         {
             id = chbId;
             OnCheck = checkEvent;
         }

         public void InstantiateIn(System.Web.UI.Control  container)
         {
             CheckBox chb = new CheckBox();
             chb.AutoPostBack = true;
             chb.ID = id;
             chb.CheckedChanged += OnCheck;
             container.Controls.Add(chb);
         }
     }

这样就可以在SPGridView中调用这个模板类,并且为Oncheck事件提供处理方 法:

protected override void CreateChildControls()
         {
             if (!_error)
             {
                 try
                 {
                     SPList sourceList =  SPContext.Current.Web.Lists["Purchase Request"];
                     dataSource = new  SPDataSource();
                     this.Controls.Add (dataSource);
                     dataSource.List =  sourceList;
                     gridView = new  SPGridView();
                     gridView.AutoGenerateColumns = false;

                     TemplateField chbField =  new TemplateField();
                     chbField.HeaderText =  "";
                     EventHandler onCheck =  new EventHandler(OnCheck);
                     chbField.ItemTemplate =  new CheckBoxTemplateField("chb", onCheck);
                     gridView.Columns.Add (chbField);

时间: 2024-09-12 15:17:14

SharePoint开发详解:一个Feature中使用SPGridView的几个Tips的相关文章

《Android游戏开发详解》一2.20 对象的更多实践——模拟一个色子

2.20 对象的更多实践--模拟一个色子 Android游戏开发详解 在我们的下一个项目中,将模拟一个六面色子的滚动.色子会出现在许多现代的桌上游戏中,因为它们增添了不可预期的因素,如图2-26所示.在本节中,我们将展示在Java程序中如何模拟这种随机性. 我们首先创建一个名为"DiceProject"的新的Java项目.其中,创建一个名为DiceMaker的新的类,并且像通常一样给它一个main方法. 要产生一个随机数,我们必须使用Java库中名为Random的一个内建类.我们使用熟

《Android游戏开发详解》——第2章,第2.20节对象的更多实践——模拟一个色子

2.20 对象的更多实践--模拟一个色子 Android游戏开发详解 在我们的下一个项目中,将模拟一个六面色子的滚动.色子会出现在许多现代的桌上游戏中,因为它们增添了不可预期的因素,如图2-26所示.在本节中,我们将展示在Java程序中如何模拟这种随机性. 我们首先创建一个名为"DiceProject"的新的Java项目.其中,创建一个名为DiceMaker的新的类,并且像通常一样给它一个main方法. 要产生一个随机数,我们必须使用Java库中名为Random的一个内建类.我们使用熟

详解Java编程中的反射在Android开发中的应用_Android

反射定义 "反射"(Reflection)能够让运行于JVM中的程序检测和修改运行时的行为.为何需要反射 反射带来的好处包括:     在运行时检测对象的类型.     动态构造某个类的对象.     检测类的属性和方法.     任意调用对象的方法.     修改构造函数.方法.属性的可见性. 反射方法Method getDeclaredMethod方法 声明如下: public Method getDeclaredMethod(String name, Class<?>

《Android游戏开发详解》一2.7 构建一个简单的计数程序

2.7 构建一个简单的计数程序 Android游戏开发详解在下一个示例中,我们将利用第1章中介绍过的for循环来打印出数字5到12之间的每一个偶数.这是一个简单的游戏示例,但是,掌握for循环语法的技巧很重要. 创建一个名为CountingProject的新的Java项目,并且创建一个名为EvenFinder的新类,添加程序清单2.7所示的main方法. 程序清单2.7 EvenFinder类 01 public class EvenFinder { 02 03 public static vo

《Android游戏开发详解》——第2章,第2.6节构建一个简单的计算器程序

2.6 构建一个简单的计算器程序Android游戏开发详解现在,我们已经尝到了甜头,让我们回过头来看看第1章介绍过的一些概念,并且构建一个简单的计算器程序.让我们给出一些动手实践的指导,来构建一个新的Java程序.请记住如下的主要步骤. ① 创建一个新的Java项目(将其命名为SecondProject). ② 在src文件夹中创建一个新的类(将其命名为SimpleCalculator). ③ 创建一个main方法. 如果任何时候你碰到困难,应该参考前面的小节.一旦按照上面的步骤进行,应该会看到

《Android游戏开发详解》——第1章,第1.6节函数(在Java中称为“方法”更好)

1.6 函数(在Java中称为"方法"更好)Android游戏开发详解让我们将目前为止所学到的所有内容组合起来,并且讨论编程的一个重要方面,即函数. 函数是一组规则.特别地,函数应该接受一个值并且输出一个相应的结果.以一个数学函数为例. f(x)=3x +2 输入是任意的数值x,输出是3x +2的结果 例如,f(1)=3(1)+2=5在Java中,我们可以定义一个非常类似的函数.如下的函数将接受一个float类型的输入,并且输出计算3x+2的结果. 程序清单1.6 Java函数 1 f

《Android游戏开发详解》一2.6 构建一个简单的计算器程序

2.6 构建一个简单的计算器程序 Android游戏开发详解现在,我们已经尝到了甜头,让我们回过头来看看第1章介绍过的一些概念,并且构建一个简单的计算器程序.让我们给出一些动手实践的指导,来构建一个新的Java程序.请记住如下的主要步骤. ① 创建一个新的Java项目(将其命名为SecondProject). ② 在src文件夹中创建一个新的类(将其命名为SimpleCalculator). ③ 创建一个main方法. 如果任何时候你碰到困难,应该参考前面的小节.一旦按照上面的步骤进行,应该会看

《Android游戏开发详解》一1.6 函数(在Java中称为“方法”更好)

1.6 函数(在Java中称为"方法"更好) Android游戏开发详解让我们将目前为止所学到的所有内容组合起来,并且讨论编程的一个重要方面,即函数. 函数是一组规则.特别地,函数应该接受一个值并且输出一个相应的结果.以一个数学函数为例. f(x)=3x +2 输入是任意的数值x,输出是3x +2的结果 例如,f(1)=3(1)+2=5 在Java中,我们可以定义一个非常类似的函数.如下的函数将接受一个float类型的输入,并且输出计算3x+2的结果. 程序清单1.6 Java函数 1

android应用开发详解里的一个例子

问题描述 android应用开发详解里的一个例子 我导入的书上例子可以运行,照着书打进去的代码就不能运行,同样从例子里面复制过来的代码也不能运行,MainActivity可以显示,但是点击register后跳转的ResultActivity就不能显示,模拟器弹出has stopped字样,求解答 以下是代码 package com.amaker.test; import android.app.Activity; import android.content.Intent; import and