DevExpress ASP.NET 使用经验谈(8)-ASPxGridView自定义列和基本事件
weixin_30305735于 2014-12-11 11:36:00 发布
阅读量243 收藏
点赞数
文章标签: 数据库 ui xhtml
版权
为演示本节示例,我们在原来Users表增加【性别Gender】、【兴趣爱好Hobbies】,【CreateTime创建时间】,【ModifyTime】修改时间这4个字段,
00001.
ALTER TABLE [dbo].[Users] add [Gender] varchar(10) NULL
00002.
00003.
GO
00004.
00005.
ALTER TABLE [dbo].[Users] add [Hobbies] varchar(50) NULL
00006.
00007.
GO
00008.
00009.
ALTER TABLE [dbo].[Users] add [CreateTime] datetime NULL
00010.
00011.
GO
00012.
00013.
ALTER TABLE [dbo].[Users] add [ModifyTime] datetime NULL
00014.
完成建表语句如下:
00001.
CREATE TABLE [dbo].[Users] (
00002.
00003.
[UserID] int IDENTITY(1, 1) NOT NULL,
00004.
00005.
[UserName] nvarchar(50) NULL,
00006.
00007.
[FirstName] nvarchar(50) NULL,
00008.
00009.
[LastName] nvarchar(50) NULL,
00010.
00011.
[MiddleName] nvarchar(50) NULL,
00012.
00013.
[EmailID] nvarchar(50) NULL,
00014.
00015.
[Gender] varchar(10) NULL,
00016.
00017.
[Hobbies] varchar(50) NULL,
00018.
00019.
[ModifyTime] datetime NULL,
00020.
00021.
[CreateTime] datetime NULL,
00022.
00023.
CONSTRAINT [PK_Users] PRIMARY KEY ([UserID])
00024.
00025.
)
00026.
【性别】:我们选择ASPxGridView的GridViewDataComboBoxColumn列类型,通过如下代码实现下拉选择性别“男”和“女”。
00001.
<dx:GridViewDataComboBoxColumn FieldName="Gender" VisibleIndex="6" Caption="性别" Width="80px">
00002.
00003.
<EditFormSettings VisibleIndex="4" Visible="True" Caption="性别" />
00004.
00005.
<CellStyle HorizontalAlign="Center" />
00006.
00007.
<HeaderStyle HorizontalAlign="Center" />
00008.
00009.
<PropertiesComboBox>
00010.
00011.
<Items>
00012.
00013.
<dx:ListEditItem Text="男" Value="男" />
00014.
00015.
<dx:ListEditItem Text="女" Value="女" />
00016.
00017.
</Items>
00018.
00019.
</PropertiesComboBox>
00020.
00021.
</dx:GridViewDataComboBoxColumn>
00022.
【兴趣爱好】:通过编辑模板EditItemTemplate,建立自定义的兴趣爱好CheckBox选项的模板列。
00001.
<dx:GridViewDataTextColumn FieldName="Hobbies" VisibleIndex="7" Caption="兴趣爱好" Width="100px">
00002.
00003.
<EditFormSettings VisibleIndex="5" Visible="True" Caption="兴趣爱好" />
00004.
00005.
<CellStyle HorizontalAlign="Center" />
00006.
00007.
<HeaderStyle HorizontalAlign="Center" />
00008.
00009.
<EditItemTemplate>
00010.
00011.
<table border="0">
00012.
00013.
<tr>
00014.
00015.
<td>
00016.
00017.
<dx:ASPxCheckBox ID="ASPxCheckBox_H1" runat="server" ClientInstanceName="cb_hob1" Text="阅读" Layout="Flow" OnInit="ASPxCheckBox_Hobbies_Init">
00018.
00019.
</dx:ASPxCheckBox>
00020.
00021.
</td>
00022.
00023.
<td> </td>
00024.
00025.
<td>
00026.
00027.
<dx:ASPxCheckBox ID="ASPxCheckBox_H2" ClientInstanceName="cb_hob2" runat="server" Text="思考" Layout="Flow" OnInit="ASPxCheckBox_Hobbies_Init">
00028.
00029.
</dx:ASPxCheckBox>
00030.
00031.
</td>
00032.
00033.
<td> </td>
00034.
00035.
<td>
00036.
00037.
<dx:ASPxCheckBox ID="ASPxCheckBox_H3" runat="server" ClientInstanceName="cb_hob3" Text="运动" Layout="Flow" OnInit="ASPxCheckBox_Hobbies_Init">
00038.
00039.
</dx:ASPxCheckBox>
00040.
00041.
</td>
00042.
00043.
<td> </td>
00044.
00045.
<td>
00046.
00047.
<dx:ASPxCheckBox ID="ASPxCheckBox_H4" runat="server" ClientInstanceName="cb_hob4" Text="社交" Layout="Flow" OnInit="ASPxCheckBox_Hobbies_Init">
00048.
00049.
</dx:ASPxCheckBox>
00050.
00051.
</td>
00052.
00053.
</tr>
00054.
00055.
</table>
00056.
00057.
</EditItemTemplate>
00058.
00059.
</dx:GridViewDataTextColumn>
00060.
【 创建时间】与【修改时间】在界面上均不显示,分别记录每条数据的创建时间和最后一次修改时间。
00001.
<dx:GridViewDataDateColumn FieldName="CreateTime" VisibleIndex="7" Caption="创建时间" Width="100px" Visible="false">
00002.
00003.
<EditFormSettings VisibleIndex="5" Visible="False" Caption="创建时间" />
00004.
00005.
<CellStyle HorizontalAlign="Center" />
00006.
00007.
<HeaderStyle HorizontalAlign="Center" />
00008.
00009.
</dx:GridViewDataDateColumn>
00010.
00011.
<dx:GridViewDataDateColumn FieldName="ModifyTime" VisibleIndex="7" Caption="修改时间" Width="100px" Visible="false">
00012.
00013.
<EditFormSettings VisibleIndex="5" Visible="True" Caption="修改时间" />
00014.
00015.
<CellStyle HorizontalAlign="Center" />
00016.
00017.
<HeaderStyle HorizontalAlign="Center" />
00018.
00019.
</dx:GridViewDataDateColumn>
00020.
关于这4个字段的后台赋值,我们暂先放一边,来看一下,目前编辑界面的效果。
图一 添加字段后的编辑页
【性别】字段,可以直接下拉选择并保存,但是【兴趣爱好】选项选取后保存无效,【创建时间】,【修改时间】因为并未开放编辑,且后台并未赋值,
所以仍为空值。那么如何才能保存这三个字段呢?
这里我们就要利用ASPxGridView的OnRowInserting事件、OnRowUpdating事件来执行赋值和保存。
后台OnRowInserting事件代码如下:
00001.
protected void ASPxGridView1_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e)
00002.
00003.
{
00004.
00005.
//在RowInserting时,将当前时间赋值给“创建时间列”CreateTime赋值
00006.
00007.
e.NewValues["CreateTime"] = DateTime.Now;
00008.
00009.
00010.
00011.
GridViewDataColumn columnHobbies = ASPxGridView1.Columns["Hobbies"] as GridViewDataColumn; //取出GridView的Column
00012.
00013.
//通过ASPxGridView1.FindEditRowCellTemplateControl找出自定义的CheckBox
00014.
00015.
ASPxCheckBox cbH1 = (ASPxGridView1.FindEditRowCellTemplateControl(columnHobbies, "ASPxCheckBox_H1") as ASPxCheckBox);
00016.
00017.
ASPxCheckBox cbH2 = (ASPxGridView1.FindEditRowCellTemplateControl(columnHobbies, "ASPxCheckBox_H2") as ASPxCheckBox);
00018.
00019.
ASPxCheckBox cbH3 = (ASPxGridView1.FindEditRowCellTemplateControl(columnHobbies, "ASPxCheckBox_H3") as ASPxCheckBox);
00020.
00021.
ASPxCheckBox cbH4 = (ASPxGridView1.FindEditRowCellTemplateControl(columnHobbies, "ASPxCheckBox_H4") as ASPxCheckBox);
00022.
00023.
00024.
00025.
ArrayList listHobbies = new ArrayList();
00026.
00027.
if (cbH1.Checked == true)
00028.
00029.
{
00030.
00031.
listHobbies.Add(cbH1.Text);
00032.
00033.
}
00034.
00035.
if (cbH2.Checked == true)
00036.
00037.
{
00038.
00039.
listHobbies.Add(cbH2.Text);
00040.
00041.
}
00042.
00043.
if (cbH3.Checked == true)
00044.
00045.
{
00046.
00047.
listHobbies.Add(cbH3.Text);
00048.
00049.
}
00050.
00051.
if (cbH4.Checked == true)
00052.
00053.
{
00054.
00055.
listHobbies.Add(cbH4.Text);
00056.
00057.
}
00058.
00059.
//通过 e.NewValues["Hobbies"]赋值
00060.
00061.
e.NewValues["Hobbies"] = string.Join(",", listHobbies.ToArray());
00062.
00063.
}
00064.
我们可以通过e.NewValues["列名"]赋值来存取数据,通过ASPxGridView1.FindEditRowCellTemplateControl方法,可以找到模板列中的
自定义控件。
同理,后台RowUpdating事件如下:
00001.
protected void ASPxGridView1_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)
00002.
00003.
{
00004.
00005.
//在RowUpdating时,将当前时间赋值给“创建时间列”ModifyTime赋值
00006.
00007.
e.NewValues["ModifyTime"] = DateTime.Now;
00008.
00009.
00010.
00011.
GridViewDataColumn columnHobbies = ASPxGridView1.Columns["Hobbies"] as GridViewDataColumn;//取出GridView的Column
00012.
00013.
//通过ASPxGridView1.FindEditRowCellTemplateControl找出自定义的CheckBox
00014.
00015.
ASPxCheckBox cbH1 = (ASPxGridView1.FindEditRowCellTemplateControl(columnHobbies, "ASPxCheckBox_H1") as ASPxCheckBox);
00016.
00017.
ASPxCheckBox cbH2 = (ASPxGridView1.FindEditRowCellTemplateControl(columnHobbies, "ASPxCheckBox_H2") as ASPxCheckBox);
00018.
00019.
ASPxCheckBox cbH3 = (ASPxGridView1.FindEditRowCellTemplateControl(columnHobbies, "ASPxCheckBox_H3") as ASPxCheckBox);
00020.
00021.
ASPxCheckBox cbH4 = (ASPxGridView1.FindEditRowCellTemplateControl(columnHobbies, "ASPxCheckBox_H4") as ASPxCheckBox);
00022.
00023.
00024.
00025.
ArrayList listHobbies = new ArrayList();
00026.
00027.
if (cbH1.Checked == true)
00028.
00029.
{
00030.
00031.
listHobbies.Add(cbH1.Text);
00032.
00033.
}
00034.
00035.
if (cbH2.Checked == true)
00036.
00037.
{
00038.
00039.
listHobbies.Add(cbH2.Text);
00040.
00041.
}
00042.
00043.
if (cbH3.Checked == true)
00044.
00045.
{
00046.
00047.
listHobbies.Add(cbH3.Text);
00048.
00049.
}
00050.
00051.
if (cbH4.Checked == true)
00052.
00053.
{
00054.
00055.
listHobbies.Add(cbH4.Text);
00056.
00057.
}
00058.
00059.
//通过 e.NewValues["Hobbies"]赋值
00060.
00061.
e.NewValues["Hobbies"] = string.Join(",", listHobbies.ToArray());
00062.
00063.
}
00064.
通过上面代码,我们已经能将【兴趣爱好】、【创建时间】、【修改时间】的数据保存到数据库,但是再次编辑时,【兴趣爱好】列数据并未绑定控件,
这时,就需要用到ASPxCheckBox控件的OnInit事件。
00001.
<dx:ASPxCheckBox ID="ASPxCheckBox_H2" ClientInstanceName="cb_hob2" runat="server" Text="思考" Layout="Flow" OnInit="ASPxCheckBox_Hobbies_Init">
00002.
00003.
</dx:ASPxCheckBox>
00004.
ASPxCheckBox_Hobbies_Init事件代码如下:
00001.
protected void ASPxCheckBox_Hobbies_Init(object sender, EventArgs e)
00002.
00003.
{
00004.
00005.
ASPxCheckBox cblHb = sender as ASPxCheckBox;
00006.
00007.
GridViewEditItemTemplateContainer container = cblHb.NamingContainer as GridViewEditItemTemplateContainer;
00008.
00009.
string strHobbies = string.Empty;
00010.
00011.
if (DataBinder.Eval(container.DataItem, "Hobbies") != null)
00012.
00013.
strHobbies = DataBinder.Eval(container.DataItem, "Hobbies").ToString().Trim();
00014.
00015.
00016.
00017.
if (strHobbies.Contains(cblHb.Text))
00018.
00019.
{
00020.
00021.
cblHb.Checked = true;
00022.
00023.
}
00024.
00025.
}
00026.
此时,我们新增一条数据,录入信息如下,点击保存,再次点击编辑图标打开编辑界面,已经显示【兴趣爱好】列的选择状态数据绑定,因为是
新增数据,所以【修改时间】为空。
图二 增加后台取值赋值代码,执行新增并保存后的界面
再次编辑,修改【兴趣爱好】选项,取消“运动“选项,增加”思考“选项,再保存,这时【修改时间】更新。
图三 再执行编辑并保存后的界面
最后贴出完整代码:
1、前台ASPX页面代码:
00001.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
00002.
00003.
00004.
00005.
<%@ Register Assembly="DevExpress.Xpo.v12.2.Web, Version=12.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Xpo" TagPrefix="dx" %>
00006.
00007.
00008.
00009.
<%@ Register Assembly="DevExpress.Web.v12.2, Version=12.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dx" %>
00010.
00011.
00012.
00013.
<%@ Register Assembly="DevExpress.Web.v12.2, Version=12.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxEditors" TagPrefix="dx" %>
00014.
00015.
00016.
00017.
<!DOCTYPE html>
00018.
00019.
00020.
00021.
<html xmlns="http://www.w3.org/1999/xhtml">
00022.
00023.
<head runat="server">
00024.
00025.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
00026.
00027.
<title></title>
00028.
00029.
</head>
00030.
00031.
<body>
00032.
00033.
<form id="form1" runat="server">
00034.
00035.
<div>
00036.
00037.
<p>
00038.
00039.
<h1>ASPxGridView自定义列和事件</h1>
00040.
00041.
</p>
00042.
00043.
<dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False"
00044.
00045.
OnRowInserting="ASPxGridView1_RowInserting"
00046.
00047.
OnRowUpdating="ASPxGridView1_RowUpdating"
00048.
00049.
DataSourceID="XpoDataSource1" KeyFieldName="UserID" Theme="Aqua">
00050.
00051.
<Columns>
00052.
00053.
<dx:GridViewCommandColumn VisibleIndex="0" ButtonType="Image" Width="80px">
00054.
00055.
<EditButton Visible="true">
00056.
00057.
<Image ToolTip="编辑" Url="Assets/images/edit.png"></Image>
00058.
00059.
</EditButton>
00060.
00061.
<NewButton Visible="true">
00062.
00063.
<Image ToolTip="新增" Url="Assets/images/new.png"></Image>
00064.
00065.
</NewButton>
00066.
00067.
<DeleteButton Visible="true">
00068.
00069.
<Image ToolTip="删除" Url="Assets/images/delete.png"></Image>
00070.
00071.
</DeleteButton>
00072.
00073.
<UpdateButton Visible="true">
00074.
00075.
<Image ToolTip="保存" Url="Assets/images/save.gif"></Image>
00076.
00077.
</UpdateButton>
00078.
00079.
<CancelButton Visible="true">
00080.
00081.
<Image ToolTip="取消" Url="Assets/images/cancel.gif"></Image>
00082.
00083.
</CancelButton>
00084.
00085.
</dx:GridViewCommandColumn>
00086.
00087.
<dx:GridViewDataTextColumn FieldName="UserID" ReadOnly="True" VisibleIndex="1" Visible="false">
00088.
00089.
</dx:GridViewDataTextColumn>
00090.
00091.
<dx:GridViewDataTextColumn FieldName="UserName" VisibleIndex="2" Caption="用户姓名" >
00092.
00093.
<EditFormSettings VisibleIndex="2" Visible="True" Caption="用户姓名" />
00094.
00095.
</dx:GridViewDataTextColumn>
00096.
00097.
<dx:GridViewDataTextColumn FieldName="FirstName" VisibleIndex="3" Caption="名" Width="80px">
00098.
00099.
<EditFormSettings VisibleIndex="3" Visible="True" Caption="名" />
00100.
00101.
<CellStyle HorizontalAlign="Center" />
00102.
00103.
<HeaderStyle HorizontalAlign="Center" />
00104.
00105.
</dx:GridViewDataTextColumn>
00106.
00107.
<dx:GridViewDataTextColumn FieldName="LastName" VisibleIndex="4" Caption="姓" Width="80px">
00108.
00109.
<EditFormSettings VisibleIndex="4" Visible="True" Caption="姓" />
00110.
00111.
<CellStyle HorizontalAlign="Center" />
00112.
00113.
<HeaderStyle HorizontalAlign="Center" />
00114.
00115.
</dx:GridViewDataTextColumn>
00116.
00117.
<dx:GridViewDataTextColumn FieldName="MiddleName" VisibleIndex="5" Caption="教名" Width="100px">
00118.
00119.
<EditFormSettings VisibleIndex="5" Visible="False" Caption="教名" />
00120.
00121.
<CellStyle HorizontalAlign="Center" />
00122.
00123.
<HeaderStyle HorizontalAlign="Center" />
00124.
00125.
</dx:GridViewDataTextColumn>
00126.
00127.
<dx:GridViewDataComboBoxColumn FieldName="Gender" VisibleIndex="6" Caption="性别" Width="80px">
00128.
00129.
<EditFormSettings VisibleIndex="4" Visible="True" Caption="性别" />
00130.
00131.
<CellStyle HorizontalAlign="Center" />
00132.
00133.
<HeaderStyle HorizontalAlign="Center" />
00134.
00135.
<PropertiesComboBox>
00136.
00137.
<Items>
00138.
00139.
<dx:ListEditItem Text="男" Value="男" />
00140.
00141.
<dx:ListEditItem Text="女" Value="女" />
00142.
00143.
</Items>
00144.
00145.
</PropertiesComboBox>
00146.
00147.
</dx:GridViewDataComboBoxColumn>
00148.
00149.
<dx:GridViewDataTextColumn FieldName="Hobbies" VisibleIndex="7" Caption="兴趣爱好" Width="100px">
00150.
00151.
<EditFormSettings VisibleIndex="5" Visible="True" Caption="兴趣爱好" />
00152.
00153.
<CellStyle HorizontalAlign="Center" />
00154.
00155.
<HeaderStyle HorizontalAlign="Center" />
00156.
00157.
<EditItemTemplate>
00158.
00159.
<table border="0">
00160.
00161.
<tr>
00162.
00163.
<td>
00164.
00165.
<dx:ASPxCheckBox ID="ASPxCheckBox_H1" runat="server" ClientInstanceName="cb_hob1" Text="阅读" Layout="Flow" OnInit="ASPxCheckBox_Hobbies_Init">
00166.
00167.
</dx:ASPxCheckBox>
00168.
00169.
</td>
00170.
00171.
<td> </td>
00172.
00173.
<td>
00174.
00175.
<dx:ASPxCheckBox ID="ASPxCheckBox_H2" ClientInstanceName="cb_hob2" runat="server" Text="思考" Layout="Flow" OnInit="ASPxCheckBox_Hobbies_Init">
00176.
00177.
</dx:ASPxCheckBox>
00178.
00179.
</td>
00180.
00181.
<td> </td>
00182.
00183.
<td>
00184.
00185.
<dx:ASPxCheckBox ID="ASPxCheckBox_H3" runat="server" ClientInstanceName="cb_hob3" Text="运动" Layout="Flow" OnInit="ASPxCheckBox_Hobbies_Init">
00186.
00187.
</dx:ASPxCheckBox>
00188.
00189.
</td>
00190.
00191.
<td> </td>
00192.
00193.
<td>
00194.
00195.
<dx:ASPxCheckBox ID="ASPxCheckBox_H4" runat="server" ClientInstanceName="cb_hob4" Text="社交" Layout="Flow" OnInit="ASPxCheckBox_Hobbies_Init">
00196.
00197.
</dx:ASPxCheckBox>
00198.
00199.
</td>
00200.
00201.
</tr>
00202.
00203.
</table>
00204.
00205.
</EditItemTemplate>
00206.
00207.
</dx:GridViewDataTextColumn>
00208.
00209.
<dx:GridViewDataTextColumn FieldName="EmailID" VisibleIndex="6" Caption="邮箱" Width="200px">
00210.
00211.
<EditFormSettings VisibleIndex="6" Visible="True" Caption="邮箱" ColumnSpan="2" />
00212.
00213.
</dx:GridViewDataTextColumn>
00214.
00215.
<dx:GridViewDataDateColumn FieldName="CreateTime" VisibleIndex="7" Caption="创建时间" Width="100px" >
00216.
00217.
<EditFormSettings VisibleIndex="5" Visible="False" Caption="创建时间" />
00218.
00219.
<CellStyle HorizontalAlign="Center" />
00220.
00221.
<HeaderStyle HorizontalAlign="Center" />
00222.
00223.
</dx:GridViewDataDateColumn>
00224.
00225.
<dx:GridViewDataDateColumn FieldName="ModifyTime" VisibleIndex="7" Caption="修改时间" Width="100px" >
00226.
00227.
<EditFormSettings VisibleIndex="5" Visible="False" Caption="修改时间" />
00228.
00229.
<CellStyle HorizontalAlign="Center" />
00230.
00231.
<HeaderStyle HorizontalAlign="Center" />
00232.
00233.
</dx:GridViewDataDateColumn>
00234.
00235.
</Columns>
00236.
00237.
<SettingsBehavior ConfirmDelete="true" AllowFocusedRow="true" AllowSelectSingleRowOnly="true" AllowSelectByRowClick="true" />
00238.
00239.
<SettingsEditing EditFormColumnCount="2" />
00240.
00241.
<Settings ShowFooter="True" />
00242.
00243.
<SettingsText EmptyDataRow="无记录" ConfirmDelete="确定删除吗?" />
00244.
00245.
<SettingsPager Mode="ShowPager" PageSize="3" />
00246.
00247.
</dx:ASPxGridView>
00248.
00249.
</div>
00250.
00251.
<dx:XpoDataSource ID="XpoDataSource1" runat="server" TypeName="XPOModel.DemoDB.Users"></dx:XpoDataSource>
00252.
00253.
</form>
00254.
00255.
</body>
00256.
00257.
</html>
00258.
2、后台代码:
00001.
using System;
00002.
00003.
using System.Collections.Generic;
00004.
00005.
using System.Linq;
00006.
00007.
using System.Web;
00008.
00009.
using System.Web.UI;
00010.
00011.
using System.Web.UI.WebControls;
00012.
00013.
using System.Configuration;
00014.
00015.
using DevExpress.Xpo;
00016.
00017.
using DevExpress.Xpo.DB;
00018.
00019.
using DevExpress.Web.ASPxGridView;
00020.
00021.
using DevExpress.Web.ASPxEditors;
00022.
00023.
using System.Collections;
00024.
00025.
public partial class _Default : System.Web.UI.Page
00026.
00027.
{
00028.
00029.
protected void Page_Init(object sender, EventArgs e)
00030.
00031.
{
00032.
00033.
string provider = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;//获取数据库连接
00034.
00035.
IDataLayer datalayer = new SimpleDataLayer(XpoDefault.GetConnectionProvider(provider, AutoCreateOption.DatabaseAndSchema));//建立数据层XPO独有的
00036.
00037.
DevExpress.Xpo.Session session = new DevExpress.Xpo.Session(datalayer); //将数据层和会话绑定
00038.
00039.
XpoDataSource1.Session = session;
00040.
00041.
}
00042.
00043.
00044.
00045.
protected void Page_Load(object sender, EventArgs e)
00046.
00047.
{
00048.
00049.
00050.
00051.
}
00052.
00053.
00054.
00055.
protected void ASPxCheckBox_Hobbies_Init(object sender, EventArgs e)
00056.
00057.
{
00058.
00059.
ASPxCheckBox cblHb = sender as ASPxCheckBox;
00060.
00061.
GridViewEditItemTemplateContainer container = cblHb.NamingContainer as GridViewEditItemTemplateContainer;
00062.
00063.
string strHobbies = string.Empty;
00064.
00065.
if (DataBinder.Eval(container.DataItem, "Hobbies") != null)
00066.
00067.
strHobbies = DataBinder.Eval(container.DataItem, "Hobbies").ToString().Trim();
00068.
00069.
00070.
00071.
if (strHobbies.Contains(cblHb.Text))
00072.
00073.
{
00074.
00075.
cblHb.Checked = true;
00076.
00077.
}
00078.
00079.
}
00080.
00081.
00082.
00083.
protected void ASPxGridView1_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e)
00084.
00085.
{
00086.
00087.
//在RowInserting时,将当前时间赋值给“创建时间列”CreateTime赋值
00088.
00089.
e.NewValues["CreateTime"] = DateTime.Now;
00090.
00091.
00092.
00093.
GridViewDataColumn columnHobbies = ASPxGridView1.Columns["Hobbies"] as GridViewDataColumn; //取出GridView的Column
00094.
00095.
//通过ASPxGridView1.FindEditRowCellTemplateControl找出自定义的CheckBox
00096.
00097.
ASPxCheckBox cbH1 = (ASPxGridView1.FindEditRowCellTemplateControl(columnHobbies, "ASPxCheckBox_H1") as ASPxCheckBox);
00098.
00099.
ASPxCheckBox cbH2 = (ASPxGridView1.FindEditRowCellTemplateControl(columnHobbies, "ASPxCheckBox_H2") as ASPxCheckBox);
00100.
00101.
ASPxCheckBox cbH3 = (ASPxGridView1.FindEditRowCellTemplateControl(columnHobbies, "ASPxCheckBox_H3") as ASPxCheckBox);
00102.
00103.
ASPxCheckBox cbH4 = (ASPxGridView1.FindEditRowCellTemplateControl(columnHobbies, "ASPxCheckBox_H4") as ASPxCheckBox);
00104.
00105.
00106.
00107.
ArrayList listHobbies = new ArrayList();
00108.
00109.
if (cbH1.Checked == true)
00110.
00111.
{
00112.
00113.
listHobbies.Add(cbH1.Text);
00114.
00115.
}
00116.
00117.
if (cbH2.Checked == true)
00118.
00119.
{
00120.
00121.
listHobbies.Add(cbH2.Text);
00122.
00123.
}
00124.
00125.
if (cbH3.Checked == true)
00126.
00127.
{
00128.
00129.
listHobbies.Add(cbH3.Text);
00130.
00131.
}
00132.
00133.
if (cbH4.Checked == true)
00134.
00135.
{
00136.
00137.
listHobbies.Add(cbH4.Text);
00138.
00139.
}
00140.
00141.
//通过 e.NewValues["Hobbies"]赋值
00142.
00143.
e.NewValues["Hobbies"] = string.Join(",", listHobbies.ToArray());
00144.
00145.
}
00146.
00147.
protected void ASPxGridView1_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)
00148.
00149.
{
00150.
00151.
//在RowUpdating时,将当前时间赋值给“创建时间列”ModifyTime赋值
00152.
00153.
e.NewValues["ModifyTime"] = DateTime.Now;
00154.
00155.
00156.
00157.
GridViewDataColumn columnHobbies = ASPxGridView1.Columns["Hobbies"] as GridViewDataColumn;//取出GridView的Column
00158.
00159.
//通过ASPxGridView1.FindEditRowCellTemplateControl找出自定义的CheckBox
00160.
00161.
ASPxCheckBox cbH1 = (ASPxGridView1.FindEditRowCellTemplateControl(columnHobbies, "ASPxCheckBox_H1") as ASPxCheckBox);
00162.
00163.
ASPxCheckBox cbH2 = (ASPxGridView1.FindEditRowCellTemplateControl(columnHobbies, "ASPxCheckBox_H2") as ASPxCheckBox);
00164.
00165.
ASPxCheckBox cbH3 = (ASPxGridView1.FindEditRowCellTemplateControl(columnHobbies, "ASPxCheckBox_H3") as ASPxCheckBox);
00166.
00167.
ASPxCheckBox cbH4 = (ASPxGridView1.FindEditRowCellTemplateControl(columnHobbies, "ASPxCheckBox_H4") as ASPxCheckBox);
00168.
00169.
00170.
00171.
ArrayList listHobbies = new ArrayList();
00172.
00173.
if (cbH1.Checked == true)
00174.
00175.
{
00176.
00177.
listHobbies.Add(cbH1.Text);
00178.
00179.
}
00180.
00181.
if (cbH2.Checked == true)
00182.
00183.
{
00184.
00185.
listHobbies.Add(cbH2.Text);
00186.
00187.
}
00188.
00189.
if (cbH3.Checked == true)
00190.
00191.
{
00192.
00193.
listHobbies.Add(cbH3.Text);
00194.
00195.
}
00196.
00197.
if (cbH4.Checked == true)
00198.
00199.
{
00200.
00201.
listHobbies.Add(cbH4.Text);
00202.
00203.
}
00204.
00205.
//通过 e.NewValues["Hobbies"]赋值
00206.
00207.
e.NewValues["Hobbies"] = string.Join(",", listHobbies.ToArray());
00208.
00209.
}
00210.
00211.
}
00212.
源码下载:http://pan.baidu.com/s/1hqziMNE