mark新官上任,转贴一个DataGrid(增加删除确认和新增记录功能),道贺:)
来源:互联网 发布:C语言roll程序 编辑:程序博客网 时间:2024/06/06 02:18
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
using System.Web.UI.WebControls;
using System.Data;
/*
* The Control assumes the following:
*
* 1) It is bound to a DataView object.
* 2) The app will use direct SQL commands to update the source (NO batch update).
* 3) No custom paging is enabled.
*
* If you plan to support sorting, then some aspects of this code should be reviewed
* and adapted.
*
*/
namespace BWSLib
{
namespace Controls
{
public class EditableGrid : DataGrid
{
// Constructor that sets some styles and graphical properties
public EditableGrid()
{
AllowFullEditing = true;
AddNewRow = false;
RejectChanges = false;
MustInsertRow = false;
AllowPaging = true;
// Handlers
Init += new EventHandler(OnInit);
PageIndexChanged += new DataGridPageChangedEventHandler(OnPageIndexChanged);
ItemCreated += new DataGridItemEventHandler(OnItemCreated);
CancelCommand += new DataGridCommandEventHandler(OnCancelCommand);
EditCommand += new DataGridCommandEventHandler(OnEditCommand);
UpdateCommand += new DataGridCommandEventHandler(OnUpdateCommand);
DeleteCommand += new DataGridCommandEventHandler(OnDeleteCommand);
}
// PROPERTY: AllowFullEditing
// Enable full editing
public bool AllowFullEditing;
// PROPERTY: AddNewRow
// if true must add an empty row at the bottom of the data source
public bool AddNewRow;
// INTERNAL PROPERTY: RejectChanges
// if true must reject changes on the last row of the data source
protected bool RejectChanges;
// INTERNAL PROPERTY: MustInsertRow
// if true must INSERT instead of UPDATE and there's a pending change
protected bool MustInsertRow
{
get {return Convert.ToBoolean(ViewState["MustInsertRow"]);}
set {ViewState["MustInsertRow"] = value;}
}
// PROPERTY: DataSource (override)
public override object DataSource
{
get {return base.DataSource;}
set
{
base.DataSource = value;
if (AllowFullEditing)
{
if (AddNewRow)
{
AddNewRow = false;
InsertNewRow();
}
if (AllowFullEditing && RejectChanges)
{
RejectChanges = false;
MustInsertRow = false;
RejectChangesOnLastRow();
}
}
}
}
// PROPERTY: command columns
public bool ShowWebdings = false;
public String EditColumnText = "Edit";
public String EditColumnUpdateText = "OK";
public String EditColumnCancelText = "Cancel";
public String DeleteColumnText = "Delete";
// EVENT: InitRow
public delegate void DataGridInitRowEventHandler(Object sender, DataGridInitRowEventArgs e);
public event DataGridInitRowEventHandler InitRow;
private void OnInitRow(DataGridInitRowEventArgs e)
{
if (InitRow != null)
InitRow(this, e);
}
// EVENT: UpdateView
public event EventHandler UpdateView;
protected virtual void OnUpdateView(EventArgs e)
{
if (UpdateView != null)
UpdateView(this, e);
}
// EVENT: SaveData
public event DataGridCommandEventHandler SaveData;
protected virtual void OnSaveData(DataGridCommandEventArgs e)
{
if (SaveData != null)
SaveData(this, e);
}
// EVENT: InsertData
public event DataGridCommandEventHandler InsertData;
protected virtual void OnInsertData(DataGridCommandEventArgs e)
{
if (InsertData != null)
InsertData(this, e);
}
// EVENT: DeleteData
public event DataGridCommandEventHandler DeleteData;
protected virtual void OnDeleteData(DataGridCommandEventArgs e)
{
if (DeleteData != null)
DeleteData(this, e);
}
// EVENT HANDLER: Init
public void OnInit(Object sender, EventArgs e)
{
if (AllowFullEditing)
AddWorkerColumns();
}
// EVENT HANDLER: ItemCreated
public void OnItemCreated(Object sender, DataGridItemEventArgs e)
{
ListItemType lit = e.Item.ItemType;
if (lit == ListItemType.Item || lit == ListItemType.AlternatingItem)
CustomizeItem(e);
}
// EVENT HANDLER: CancelCommand
public void OnCancelCommand(Object sender, DataGridCommandEventArgs e)
{
if (e.Item.ItemIndex == 0)
CurrentPageIndex = (CurrentPageIndex==0 ?0 :CurrentPageIndex-1);
// Clears edit mode
EditItemIndex = -1;
// Reject changes on the last row
RejectChanges = true;
// Show/Hide DELETE column
ToggleDeleteColumn(true);
// Refresh view
OnUpdateView(EventArgs.Empty);
}
// EVENT HANDLER: EditCommand
public void OnEditCommand(Object sender, DataGridCommandEventArgs e)
{
// Reject changes on the last row (if any)
RejectChanges = true;
// Show/Hide DELETE column
ToggleDeleteColumn(false);
// Enable editing on the clicked row
EditItemIndex = e.Item.ItemIndex;
// Refresh view
OnUpdateView(EventArgs.Empty);
}
// EVENT HANDLER: UpdateCommand
public void OnUpdateCommand(Object sender, DataGridCommandEventArgs e)
{
// Clear edit mode
EditItemIndex = -1;
// Show/Hide DELETE column
ToggleDeleteColumn(true);
// Reject changes on the last row
RejectChanges = true;
// Update or insert data
if (MustInsertRow)
OnInsertData(e);
else
OnSaveData(e);
// Refresh view
OnUpdateView(EventArgs.Empty);
}
// EVENT HANDLER: DeleteCommand
public void OnDeleteCommand(Object sender, DataGridCommandEventArgs e)共2页: 上一页 1 [2] 下一页 <script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
using System;using System.Web.UI.WebControls;
using System.Data;
/*
* The Control assumes the following:
*
* 1) It is bound to a DataView object.
* 2) The app will use direct SQL commands to update the source (NO batch update).
* 3) No custom paging is enabled.
*
* If you plan to support sorting, then some aspects of this code should be reviewed
* and adapted.
*
*/
namespace BWSLib
{
namespace Controls
{
public class EditableGrid : DataGrid
{
// Constructor that sets some styles and graphical properties
public EditableGrid()
{
AllowFullEditing = true;
AddNewRow = false;
RejectChanges = false;
MustInsertRow = false;
AllowPaging = true;
// Handlers
Init += new EventHandler(OnInit);
PageIndexChanged += new DataGridPageChangedEventHandler(OnPageIndexChanged);
ItemCreated += new DataGridItemEventHandler(OnItemCreated);
CancelCommand += new DataGridCommandEventHandler(OnCancelCommand);
EditCommand += new DataGridCommandEventHandler(OnEditCommand);
UpdateCommand += new DataGridCommandEventHandler(OnUpdateCommand);
DeleteCommand += new DataGridCommandEventHandler(OnDeleteCommand);
}
// PROPERTY: AllowFullEditing
// Enable full editing
public bool AllowFullEditing;
// PROPERTY: AddNewRow
// if true must add an empty row at the bottom of the data source
public bool AddNewRow;
// INTERNAL PROPERTY: RejectChanges
// if true must reject changes on the last row of the data source
protected bool RejectChanges;
// INTERNAL PROPERTY: MustInsertRow
// if true must INSERT instead of UPDATE and there's a pending change
protected bool MustInsertRow
{
get {return Convert.ToBoolean(ViewState["MustInsertRow"]);}
set {ViewState["MustInsertRow"] = value;}
}
// PROPERTY: DataSource (override)
public override object DataSource
{
get {return base.DataSource;}
set
{
base.DataSource = value;
if (AllowFullEditing)
{
if (AddNewRow)
{
AddNewRow = false;
InsertNewRow();
}
if (AllowFullEditing && RejectChanges)
{
RejectChanges = false;
MustInsertRow = false;
RejectChangesOnLastRow();
}
}
}
}
// PROPERTY: command columns
public bool ShowWebdings = false;
public String EditColumnText = "Edit";
public String EditColumnUpdateText = "OK";
public String EditColumnCancelText = "Cancel";
public String DeleteColumnText = "Delete";
// EVENT: InitRow
public delegate void DataGridInitRowEventHandler(Object sender, DataGridInitRowEventArgs e);
public event DataGridInitRowEventHandler InitRow;
private void OnInitRow(DataGridInitRowEventArgs e)
{
if (InitRow != null)
InitRow(this, e);
}
// EVENT: UpdateView
public event EventHandler UpdateView;
protected virtual void OnUpdateView(EventArgs e)
{
if (UpdateView != null)
UpdateView(this, e);
}
// EVENT: SaveData
public event DataGridCommandEventHandler SaveData;
protected virtual void OnSaveData(DataGridCommandEventArgs e)
{
if (SaveData != null)
SaveData(this, e);
}
// EVENT: InsertData
public event DataGridCommandEventHandler InsertData;
protected virtual void OnInsertData(DataGridCommandEventArgs e)
{
if (InsertData != null)
InsertData(this, e);
}
// EVENT: DeleteData
public event DataGridCommandEventHandler DeleteData;
protected virtual void OnDeleteData(DataGridCommandEventArgs e)
{
if (DeleteData != null)
DeleteData(this, e);
}
// EVENT HANDLER: Init
public void OnInit(Object sender, EventArgs e)
{
if (AllowFullEditing)
AddWorkerColumns();
}
// EVENT HANDLER: ItemCreated
public void OnItemCreated(Object sender, DataGridItemEventArgs e)
{
ListItemType lit = e.Item.ItemType;
if (lit == ListItemType.Item || lit == ListItemType.AlternatingItem)
CustomizeItem(e);
}
// EVENT HANDLER: CancelCommand
public void OnCancelCommand(Object sender, DataGridCommandEventArgs e)
{
if (e.Item.ItemIndex == 0)
CurrentPageIndex = (CurrentPageIndex==0 ?0 :CurrentPageIndex-1);
// Clears edit mode
EditItemIndex = -1;
// Reject changes on the last row
RejectChanges = true;
// Show/Hide DELETE column
ToggleDeleteColumn(true);
// Refresh view
OnUpdateView(EventArgs.Empty);
}
// EVENT HANDLER: EditCommand
public void OnEditCommand(Object sender, DataGridCommandEventArgs e)
{
// Reject changes on the last row (if any)
RejectChanges = true;
// Show/Hide DELETE column
ToggleDeleteColumn(false);
// Enable editing on the clicked row
EditItemIndex = e.Item.ItemIndex;
// Refresh view
OnUpdateView(EventArgs.Empty);
}
// EVENT HANDLER: UpdateCommand
public void OnUpdateCommand(Object sender, DataGridCommandEventArgs e)
{
// Clear edit mode
EditItemIndex = -1;
// Show/Hide DELETE column
ToggleDeleteColumn(true);
// Reject changes on the last row
RejectChanges = true;
// Update or insert data
if (MustInsertRow)
OnInsertData(e);
else
OnSaveData(e);
// Refresh view
OnUpdateView(EventArgs.Empty);
}
// EVENT HANDLER: DeleteCommand
public void OnDeleteCommand(Object sender, DataGridCommandEventArgs e)共2页: 上一页 1 [2] 下一页 <script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- mark新官上任,转贴一个DataGrid(增加删除确认和新增记录功能),道贺:)
- 一个datagrid 删除确认例子
- 为DataGrid添加删除确认的功能
- 十七. 增加一个项目协作留言板功能(三)----- 增加任务的修改和删除功能
- FCKEditor增加带确认的“删除”功能和图片预览功能
- Oracle 增加修改删除字段/新增记录
- 新官上任
- 新官上任
- 点击复制功能和确认删除功能
- datagrid点删除,弹出一个确认和取消的消息框
- 在DataGrid中删除记录时弹出确认窗口
- 在DataGrid中删除记录时弹出确认窗口
- datagrid确认删除
- LINQ傻瓜教学之一:新增dbml文件和基本的增加删除和修改记录
- DataGrid点击删除按钮弹出确认对话框一个好办法
- DataGrid点击删除按钮弹出确认对话框一个好办法
- DataGrid点击删除按钮弹出确认对话框一个好办法
- 在删除数据库记录前弹出一个对话框,和确认按钮和取消按钮
- 上次的一个问题我打了微软的求助电话,他们也没有办法!
- 关于选用何种ASP.NET设计方法的技巧
- web方式ftp
- 关于验证控件,希望对和我原来有疑惑的朋友有帮助(刚找的资料,结合猫猫的)
- 一个odbc连mssql分页的类
- mark新官上任,转贴一个DataGrid(增加删除确认和新增记录功能),道贺:)
- 自己动手做一个SQL解释器
- asp.net中使用静态变量
- 在线竞拍系统的PHP实现框架(二)
- 配置Config.web
- 用php写的serv-u的web申请账号的程序
- 利用HttpRequest登录到某个网站,然后获取网站信息的程序示例 [原创]
- 在线竞拍系统的PHP实现框架(一)
- 一个SDK里做聊天室的例子(1)