下面列出了将Context Menu绑定到GridView上的几个步骤:

1)在ASP.NET页面上放置ContextMenu控件

2) ContextMenu里添加菜单项目单击处理事件

3)加载带有ContextMenuItemsContextMenu

配置带有ContextMenuID的菜单,可以从下面开始:

 

转:扩展GridView控件(下)<ctMenu:ContextMenu ID="ContextMenu1"
转:扩展GridView控件(下)
转:扩展GridView控件(下) runat
="server" BackColor="#99CCCC"
转:扩展GridView控件(下)
转:扩展GridView控件(下) ForeColor
="Maroon" OnItemCommand="ContextMenu1_ItemCommand"
转:扩展GridView控件(下)
转:扩展GridView控件(下) RolloverColor
="#009999" />
转:扩展GridView控件(下)

 

上面的代码使用了IDContextMenu1ContextMenu控件并增加了OnItemCommand事件,该实现在用户单击右键菜单选择菜单项目时触发。

 下面代码显示了单击事件。

Listing 6

 

 

转:扩展GridView控件(下)protected void ContextMenu1_ItemCommand(object sender, CommandEventArgs e)
转:扩展GridView控件(下)

 

当用户选择“Add a new Row”时,我们通过代码设置GridView进入插入模式,这是调用GridView内置的ChangeInsertMode方法实现的。该方法可以让GridView在插入模式和正常模式之间切换。

为了能够让用户插入数据,您可能需要在FooterTemplate放置一些控件,以便使用这些控件收集数据。

假如用户选择“Edit Row”,我们设置GridViewEditIndex属性,这样就可以使用当前行进入编辑模式

 

当用户选择“Delete Row”时,我们调用一个方法来删除当前行

正如前面介绍的,我们需要设置GridViewContextMenuID属性,下面代码显示了他的使用

Listing 7

       

转:扩展GridView控件(下) <xGrid:xGrid ID="XGrid1"
转:扩展GridView控件(下)
转:扩展GridView控件(下) runat
="server" AllowPaging="True"
转:扩展GridView控件(下)
转:扩展GridView控件(下) AutoGenerateColumns
="False" DataKeyNames="CustomerID"
转:扩展GridView控件(下)
转:扩展GridView控件(下) ContextMenuID
="ContextMenu1">
转:扩展GridView控件(下)
转:扩展GridView控件(下)            
<Columns>
转:扩展GridView控件(下)
转:扩展GridView控件(下)                
<asp:TemplateField HeaderText="Manage Row">
转:扩展GridView控件(下)
转:扩展GridView控件(下)                    
<edititemtemplate>
转:扩展GridView控件(下)
转:扩展GridView控件(下)                        
<asp:LinkButton
转:扩展GridView控件(下)
转:扩展GridView控件(下) 
text="Update" runat="server" id="lnkUpdate"
转:扩展GridView控件(下)
转:扩展GridView控件(下) CommandName
="Update" CommandArgument='<%
转:扩展GridView控件(下)
转:扩展GridView控件(下) 
Bind("CustomerID") %>' />&nbsp;&nbsp;
转:扩展GridView控件(下)
转:扩展GridView控件(下)                        
<asp:LinkButton
转:扩展GridView控件(下)
转:扩展GridView控件(下) 
text="Cancel" runat="server" id="lnkCancel"
转:扩展GridView控件(下)
转:扩展GridView控件(下) CommandName
="Cancel" />
转:扩展GridView控件(下)
转:扩展GridView控件(下)                    
转:扩展GridView控件(下)
转:扩展GridView控件(下)
</edititemtemplate>
转:扩展GridView控件(下)
转:扩展GridView控件(下)                    
<footertemplate>
转:扩展GridView控件(下)
转:扩展GridView控件(下)                        
<confirmControl:ConfirmLinkButton ID="lnkAdd" runat="server"
转:扩展GridView控件(下)
转:扩展GridView控件(下) Text
="Add" MessageText="Are you sure you want to add this
转:扩展GridView控件(下)
转:扩展GridView控件(下) record?"
 OnClick="btnAdd_Click" />
转:扩展GridView控件(下)
转:扩展GridView控件(下)                        
<asp:LinkButton
转:扩展GridView控件(下)
转:扩展GridView控件(下) 
id="lnkCancelAdd" runat="server" text="Cancel"
转:扩展GridView控件(下)
转:扩展GridView控件(下) OnClick
="btnCancel_Click" />
转:扩展GridView控件(下)
转:扩展GridView控件(下)                    
转:扩展GridView控件(下)
转:扩展GridView控件(下)
</footertemplate>
转:扩展GridView控件(下)
转:扩展GridView控件(下)                    
<itemtemplate>
转:扩展GridView控件(下)
转:扩展GridView控件(下)                        
<asp:LinkButton
转:扩展GridView控件(下)
转:扩展GridView控件(下) 
id="lnkEdit" runat="server" CommandArgument='<%
转:扩展GridView控件(下)
转:扩展GridView控件(下) 
Bind("CustomerID") %>' CommandName="Edit"
转:扩展GridView控件(下)
转:扩展GridView控件(下) text="Edit" __designer:wfd>

 

下面的代码显示了如何为ContextMenu从外部的XML文件加载数据

Listing 8

 

转:扩展GridView控件(下)private void PopulateContextMenu()
转:扩展GridView控件(下)

 

 

该外部的XML文档代码如下

Listing 9

 

转:扩展GridView控件(下)<?xml version="1.0" encoding="utf-8" ?>
转:扩展GridView控件(下)
转:扩展GridView控件(下)
<contextmenu>
转:扩展GridView控件(下)
转:扩展GridView控件(下) 
<contextmenuitem>
转:扩展GridView控件(下)
转:扩展GridView控件(下)    
<text>Add a new Row</text>
转:扩展GridView控件(下)
转:扩展GridView控件(下)    
<commandname>Add</commandname>
转:扩展GridView控件(下)
转:扩展GridView控件(下)    
<tooltip>Add a new Row</tooltip>
转:扩展GridView控件(下)
转:扩展GridView控件(下)    
<onclientclick />
转:扩展GridView控件(下)
转:扩展GridView控件(下) 
</contextmenuitem>
转:扩展GridView控件(下)
转:扩展GridView控件(下) 
<contextmenuitem>
转:扩展GridView控件(下)
转:扩展GridView控件(下)    
<text>Delete Row</text>
转:扩展GridView控件(下)
转:扩展GridView控件(下)    
<commandname>Delete</commandname>
转:扩展GridView控件(下)
转:扩展GridView控件(下)    
<tooltip>Delete Row</tooltip>
转:扩展GridView控件(下)
转:扩展GridView控件(下)    
<onclientclick>return
转:扩展GridView控件(下)
转:扩展GridView控件(下) __ConfirmMessage('Are you sure you want to delete this
转:扩展GridView控件(下)
转:扩展GridView控件(下) row?');
</onclientclick>
转:扩展GridView控件(下)
转:扩展GridView控件(下) 
</contextmenuitem>
转:扩展GridView控件(下)
转:扩展GridView控件(下) 
<contextmenuitem>
转:扩展GridView控件(下)
转:扩展GridView控件(下)    
<text>Edit Row</text>
转:扩展GridView控件(下)
转:扩展GridView控件(下)    
<commandname>Edit</commandname>
转:扩展GridView控件(下)
转:扩展GridView控件(下)    
<tooltip>Edit Row</tooltip>
转:扩展GridView控件(下)
转:扩展GridView控件(下)    
<onclientclick />
转:扩展GridView控件(下)
转:扩展GridView控件(下) 
</contextmenuitem>
转:扩展GridView控件(下)
转:扩展GridView控件(下)
</contextmenu>
转:扩展GridView控件(下)
转:扩展GridView控件(下)

 

每一个ContextMenuItem 元素都包含下面的自动:

Text:在ContextMenu显示的上下文

CommandName:处理命令的名称,例如EditDeleteAdd或者其他的名称

ToolTipContextMenuItem上的提示信息

OnClientClick:客户端处理事件

 

 

GridView列标头添加图片

另外,还可以绑定到XML上为头元素的升序/降序添加图片

当配置GridView支持排序时,这个功能会在GridView的头标题添加一个生效、降序图片。当GridView初始化加载时,并没有图片显示,只有您单击列标头素时,才会显示一个图片,您可以通过该图片查看当前排序方式,下图显示了在一列排序的结果

 

相关的属性为:AscImageDescImage:这两个属性设置升序/降序的图片

 

转:扩展GridView控件(下)

 

 

当行数目小于页面大小时修正GridView的高度

您是否注意到当GridView的行数目小于页面PageSize大小时,GridView的高度降会收缩?加入在第一页显示10条记录,当您进入到第2页面时,如果该页面只有5条记录,您会发现GridView会收缩到适应5条记录的高度,这很恼人,因为您更希望GridView总是保持同一高度。转:扩展GridView控件(下)

在图6您会发现GridView显示了几条记录,您可能已经注意到几条空的记录,因为这个页面的记录数目小于GridView页面的大小,这个添加是自动添加的

注意:空的记录仅仅是为了维护GridView的高度。

本文介绍扩展的XGrid已经内置了这个功能

 

 

内置的文本过滤

   这是继ContextMenu后的第二个最有趣的特性。您可以在自定义GridView头标题里TextBox里输入任何文本。

当您在文本框里输入一些文本并单击回车时,将会触发FilterCommand事件,您可以使用该事件实现数据的过滤

 

相关的属性如下:

IsFilterd:该属性设置是否启用过滤功能,取值为true或者时false

FilterStyle:这个属性允许您具体指定新加入到头标题的样式。

CSSFilterboxSkinIDFilterbox

下图显示了一个自定义头标题,可以使用这个功能进行数据过滤

转:扩展GridView控件(下)

 

 

 

转:扩展GridView控件(下)protected void XGrid1_FilterCommand(object sender, FilterCommandEventArgs e)
转:扩展GridView控件(下)

 

 

内置的每行的复选和全部的复选

 这个功能是在GridView的每一行添加一个CheckBox,这个功能同样参考Dino Esposito的文章

这里有两个属性

AutoGenerateCheckBoxColumn

CheckBoxColumnIndex

 

下图显示了运行结果

 

转:扩展GridView控件(下)
 

 

 

值得一提的是,当EnableRowClick 或者EnableRowDoubleClick 任何一个被设置为true时,由于MouseOverColor会覆盖SelectRowStyle样式,所以选择一行并不会显示SelectRowStyle的样式

 

 

 

 

 

确认按钮

我们已经包含了三种不同的按钮: Confirm 按钮,Image按钮和Confirm Link按钮,这些按钮除了具有常规功能外,还额外添加了下面两个属性:

EnableConfirmMsg:该该属性的取值为true或者是false。当设置为false,该按钮和常规的按钮功能一样。当该属性设置为true时,当客户端向服务器提交信息之前,会出现确认对话框

EnableConfirmMsg属性被设置为true时,MessageText属性设置弹出消息的具体内容

相关文章:

  • 2022-02-02
  • 2021-08-27
  • 2021-12-05
  • 2021-11-14
  • 2021-05-17
  • 2022-12-23
  • 2021-12-08
猜你喜欢
  • 2022-01-02
  • 2021-12-20
  • 2022-12-23
  • 2022-12-23
  • 2021-09-30
  • 2021-09-26
  • 2021-08-30
相关资源
相似解决方案