ASPxGridView常用总结
目录:
一、客户端常用
1.常用API
2.聚焦行变更事件
3.客户端选择多行
4.客户端选择行
5. 获取选择的行数目
6.单击行时,选中行
7.通过checkbox 选择行
8.选择所有行
9.启动编辑框,Container.VisibleIndex 获取行索引
10.启动服务器端函数:
二、客户端常用事件
三、服务器端常用属性
四、服务器端常用方法
五、服务器端常用事件
六、列的设置
1.模板列使用超链接
2.模板列使用Button用法
3. 使用命令列
七、其他
------------------------
------------------------
内容:
一客户端常用
1.常用API:
PerformCallback(this.value);
CollapseAll()
ExpandAll()
SelectRows()
UnselectRows()
UnselectAllRowsOnPage()
SelectAllRowsOnPage(this.checked)
2.聚焦行变更事件。向服务器查询聚焦行的 "EmployeeID" 和 "Notes" 信息,并该信息将返回到 OnGetRowValues() 函数
function OnGridFocusedRowChanged() {
grid.GetRowValues(grid.GetFocusedRowIndex(), 'EmployeeID;Notes', OnGetRowValues);
}
// 处理服务器端传回的数据(values是个数组,包含 "EmployeeID" 和 "Notes" 值)
function OnGetRowValues(values) {
DetailImage.SetImageUrl("FocusedRow.aspx?Photo=" + values[0]);
DetailNotes.SetText(values[1]);
}
<ClientSideEvents FocusedRowChanged="function(s, e) { OnGridFocusedRowChanged(); }"/>
3.客户端选择多行
function grid_SelectionChanged(s, e) {
s.GetSelectedFieldValues("ContactName", GetSelectedFieldValuesCallback);
}
function GetSelectedFieldValuesCallback(values) {
selList.BeginUpdate();
try {
selList.ClearItems();
for(var i = 0; i < values.length; i ++) {
selList.AddItem(values[i]);
}
} finally {
selList.EndUpdate();
}
document.getElementById("selCount").innerHTML = grid.GetSelectedRowCount();
}
<ClientSideEvents SelectionChanged="grid_SelectionChanged" />
4.客户端选择行
function OnGridFocusedRowChanged()
{
// Query the server for the "EmployeeID" and "Notes" fields from the focused row
// The values will be returned to the OnGetRowValues() function
grid.GetRowValues(grid.GetFocusedRowIndex(), 'EmployeeID;Notes', OnGetRowValues);
}
//Value array contains "EmployeeID" and "Notes" field values returned from the server
function OnGetRowValues(values)
{
var notes = document.getElementById("detailnotes");
notes.value = values[1];
var image = document.getElementById("detailimage");
image.src = "FocusedRow.aspx?Photo=" + values[0];
}
5. 获取选择的行数目 grid.GetSelectedRowCount()
6.单击行时,选中行
function OnRowClick(e) {
//Clear the text selection
_aspxClearSelection();
//Unselect all rows
grid._selectAllRowsOnPage(false);
//Select the row
grid.SelectRow(e.visibleIndex, true);
}
<ClientSideEvents RowClick="function(s, e) { OnRowClick(e); }" />
7.通过checkbox 选择行 设置GridView 的属性ShowSelectCheckBox =true
function grid_SelectionChanged(s,e) {
s.GetSelectedFieldValues("ContactName",GetSelectedFieldValuesCallback);
}
GetSelectedFieldValuesCallback 回调函数
function GetSelectedFieldValuesCallback(values) {
selList.BeginUpdate();
try {
selList.ClearItems();
for(var i=0;i<values.length;i++) {
selList.AddItem(values[i]);
}
} finally {
selList.EndUpdate();
}
document.getElementById("selCount").innerHTML=grid.GetSelectedRowCount();
}
selList 是ASPxListBox控件
8.选择所有行: grid.SelectAllRowsOnPage(this.checked);
9.grid.StartEditRow(VisibleIndex) 启动编辑框,Container.VisibleIndex 获取行索引
<dxwgv:GridViewDataColumn FieldName="CustomerID" VisibleIndex="0">
<DataItemTemplate>
<%#GetEditRowHtml(Container.VisibleIndex) %> GetEditRowHtml 为后台一个方法返回一个字符串
</DataItemTemplate>
</dxwgv:GridViewDataColumn>
protected string GetEditRowHtml(int visibleIndex) {
string rowValue = Convert.ToString(grid.GetRowValues(visibleIndex, "Country"));
string cbValue = Convert.ToString(cbCountries.Value);
if(rowValue == cbValue)
return string.Format("<a href='JavaScript:grid.StartEditRow({0})'> Edit </a>", visibleIndex);
return "Read Only";
}
10.启动服务器端函数: _CustomerCallBack()
PerformCallback(parameter)
二、客户端常用事件
1.
<ClientSideEvents FocusedRowChanged="function(s, e) { OnGridFocusedRowChanged(); }"/>
2.
<ClientSideEvents SelectionChanged="grid_SelectionChanged" />
3.
<ClientSideEvents RowClick="function(s, e) { OnRowClick(e); }" />
三、服务器端常用属性
四、服务器端常用方法
1.获取指定行的数据
object masterKeyValue = masterGrid.GetRowValues(Convert.ToInt32(e.Parameters), "CategoryID");
2.查找包含在gridview中的控件
grid.FindRowTemplateControl(e.VisibleIndex,"id");
grid.FindRowCellTemplateControl(e.VisibleIndex, null, "id");
Label label = grid.FindRowCellTemplateControl(e.VisibleIndex, null, "changePercent") as Label;
六、服务器端常用事件
1.行创建时执行事件
protected void grid_HtmlRowCreated(object sender, ASPxGridViewTableRowEventArgs e)
{
e.Row.Cells[0].Enabled = false;
e.GetValue("Change") decimal change = (decimal)e.GetValue("Change");
}
2.动态设置每个单元格的显示内容:
protected void grid_CustomColumnDisplayText(object sender, ASPxGridViewColumnDisplayTextEventArgs e)
{
e.Column.FieldName
e.DisplayText
}
3.编辑事件
protected void grid_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)
4. protected void grid_BeforeColumnSortingGrouping(object sender, ASPxGridViewBeforeColumnGroupingSortingEventArgs e)
{
BindGrid();
}
六、列的设置
1.模板列使用超链接
a.<dxwgv:GridViewDataColumn Caption=" " Width="64px">
<DataItemTemplate>
<a href="javascript:showEditForm('<%# Container.KeyValue.ToString() %>');">编辑</a>
<a href="javascript:deleteRow('<%# Container.KeyValue.ToString() %>');">删除</a>
</DataItemTemplate>
<Settings AllowDragDrop="False" />
</dxwgv:GridViewDataColumn>
b.<dxwgv:GridViewDataColumn Caption="单号" FieldName="note_id">
<DataItemTemplate>
<a href="VisitorNoteDetail.aspx?note_id=<%#Eval("note_id") %>"><%#Eval("note_id") %></a>
</DataItemTemplate>
</dxwgv:GridViewDataColumn>
c.<dxwgv:GridViewDataHyperLinkColumn Caption="单据ID" FieldName="note_id" Width="80px"
VisibleIndex="2">
<PropertiesHyperLinkEdit TextFormatString="note_id" NavigateUrlFormatString="VisitorNoteDetail.aspx?id={0}">
</PropertiesHyperLinkEdit>
</dxwgv:GridViewDataHyperLinkColumn>
2.模板列使用Button用法
a. 前台代码:
<dxwgv:GridViewDataColumn Caption="审批" Width="110" VisibleIndex="1">
<DataItemTemplate>
<div style="float: left; padding-right:3px;">
<dxe:ASPxButton ID="btAllow" runat="server" Text="通过" CommandName="Allow" CommandArgument='<
%#Eval("note_id")%>'>
<ClientSideEvents Click="function(s,e) {if(!confirm('确定审批该单据吗?'))
{e.processOnServer=false;}}" />
</dxe:ASPxButton>
</div>
<dxe:ASPxButton ID="btRefuse" runat="server" Text="拒绝" CommandName="Refuse" CommandArgument='<%#Eval
("note_id")%>' >
<ClientSideEvents Click="function(s,e) {if(!confirm('确定审批该单据吗?'))
{e.processOnServer=false;}}" />
</dxe:ASPxButton>
</DataItemTemplate>
</dxwgv:GridViewDataColumn>
b.后台代码:(事件:grid_RowCommand)
protected void grid_RowCommand(object sender, ASPxGridViewRowCommandEventArgs e)
{
ASPxButton button=e.CommandSource as ASPxButton;
int noteID = Convert.ToInt32(button.CommandArgument.ToString());
if (button.CommandName == "Allow")
{
ApproveNote(noteID, 1, 1);
}
else
{
ApproveNote(noteID, 2, 0);
}
BindGrid();
}
3. 使用命令列
a.<%--<dxwgv:GridViewCommandColumn Caption="审批" ButtonType="Button" Width="80px" VisibleIndex="1">
<CustomButtons>
<dxwgv:GridViewCommandColumnCustomButton ID="Allow" Text="通过">
</dxwgv:GridViewCommandColumnCustomButton>
<dxwgv:GridViewCommandColumnCustomButton ID="Refuse" Text="拒绝">
</dxwgv:GridViewCommandColumnCustomButton>
</CustomButtons>
</dxwgv:GridViewCommandColumn>--%>
后台事件是:_CustomerCallBack
b. <dxwgv:GridViewCommandColumn ShowSelectCheckbox="true" Width="30px" VisibleIndex="1" >
<HeaderTemplate>
<input type="checkbox" onclick="grid.SelectAllRowsOnPage(this.checked);" title="选择/放弃选择本页的所有
行" />
</HeaderTemplate>
<HeaderStyle HorizontalAlign="Center" />
</dxwgv:GridViewCommandColumn>
后台获取选择行的方法: List<object> noteIds=grid.GetSelectedFieldValues("note_id");
七、其他
1.ASPxGridView 排序方法
private string GetSort()
{
string sortID = "";
if (grid.GetSortedColumns().Count > 0)
{
GridViewDataColumn c = grid.GetSortedColumns()[0];
sortID = c.FieldName + (c.SortOrder == ColumnSortOrder.Descending ? " DESC" : " ASC");
}
return sortID;
}
对应的ASPxGridView 后台事件:
protected void grid_BeforeColumnSortingGrouping(object sender, ASPxGridViewBeforeColumnGroupingSortingEventArgs e)
{
BindGrid();
}
ASPxGridView常用总结的更多相关文章
- AspxGridView使用手记
AspxGridView使用手记 一. 基本使用方法 4 1.导入Dll文件 4 2.Asp.Net页面控件注册 4 3. Asp.Net页面控件声明 5 4.删除licenses. ...
- 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)
前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...
- 分布式锁1 Java常用技术方案
前言: 由于在平时的工作中,线上服务器是分布式多台部署的,经常会面临解决分布式场景下数据一致性的问题,那么就要利用分布式锁来解决这些问题.所以自己结合实际工作中的一些经验和网上看到的一些资 ...
- Visaul Studio 常用快捷键的动画演示
从本篇文章开始,我将会陆续介绍提高 VS 开发效率的文章,欢迎大家补充~ 在进行代码开发的时候,我们往往会频繁的使用键盘.鼠标进行协作,但是切换使用两种工具会影响到我们的开发速度,如果所有的操作都可以 ...
- sublime常用快捷键
自己觉得比较实用的sublime快捷键: Ctrl + / ---------------------注释 Ctrl + 滚动 --------------字体变大/缩小 Ctrl + N----- ...
- SQL Server 常用内置函数(built-in)持续整理
本文用于收集在运维中经常使用的系统内置函数,持续整理中 一,常用Metadata函数 1,查看数据库的ID和Name db_id(‘DB Name’),db_name('DB ID') 2,查看对象的 ...
- 探索ASP.NET MVC5系列之~~~4.模型篇---包含模型常用特性和过度提交防御
其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...
- React在开发中的常用结构以及功能详解
一.React什么算法,什么虚拟DOM,什么核心内容网上一大堆,请自行google. 但是能把算法说清楚,虚拟DOM说清楚的聊聊无几.对开发又没卵用,还不如来点干货看看咋用. 二.结构如下: impo ...
- 【原】实时渲染中常用的几种Rendering Path
[原]实时渲染中常用的几种Rendering Path 本文转载请注明出处 —— polobymulberry-博客园 本文为我的图形学大作业的论文部分,介绍了一些Rendering Path,比较简 ...
随机推荐
- 老毛桃pe装机工具一键还原系统
系统崩溃后,很多菜鸟朋友会六神无主,不知接下来怎么办.如果是老手,已经屡见不鲜了,因为只需一键还原系统就可以恢复到原来的工作状态.下面不妨跟小编一起继续看看怎么一键还原系统. ①制作一个老毛桃win ...
- 理解ROC和AUC
分类器各种各样,如何评价这些分类器的性能呢?(这里只考虑二元分类器,分类器的输出为概率值) 方法一:概率定义法 从正样本中随机选取元素记为x,从负样本中随机选取元素记为y,x的置信度大于y的概率 计算 ...
- JavaScript和JQuery中的事件\委托链\事件冒泡\事件捕获,兼容所有浏览器
有做过北大青鸟培训讲师经验的我,如今在一家公司做技术部经理的职位,发现有很多程序员的基本功相当糟糕,在组织企业内部培训时讲解了一些案例,总结了一些经典代码,希望对自己和有需要的人提供一些帮助吧: Ja ...
- pythonl练习笔记——threading创建进程锁Lock()
1 基本概述 采用threading.Lock()对象创建锁lock,即 lock = threading.Lock() 其相关方法主要有 lock.acquire() # lock the lock ...
- WIN7下恼人的AppData——删除没用的缓存文件
今日.打开电脑,发现C盘可用容量居然变得非常小.认为非常是可疑,例如以下图所看到的: 最初的反应是电脑中毒了,于是使用360卫士.360杀毒对C盘查杀,由于明明记得C盘有40多G的可用空间才对.出现这 ...
- ECharts 与struts的后台交互之柱状图
ECharts主页: http://echarts.baidu.com/index.html ECharts-2.1.8下载地址: http://echarts.baidu.com/build/e ...
- Spring Cloud 通过代码自定义配置Ribbon
我们还是先从官网文档开始学习,如下图所示,我们可以搞一个测试配置类,来验证是否真的可以通过代码来自定义配置Ribbon,但文档明确给出了警告:即这个测试配置类不能放在@ComponentScan所扫描 ...
- 【C语言】给一组组数,仅仅有两个数仅仅出现了一次,其它全部数都是成对出现的,找出这两个数。
//给⼀组组数,仅仅有两个数仅仅出现了一次.其它全部数都是成对出现的,找出这两个数. #include <stdio.h> int find_one_pos(int num) //找一个为 ...
- openvpn证书吊销
声明变量source ./vars使用revoke-full命令吊销客户端证书./revoke-full client-name(common name)命令执行后,我们能在keys目录中找到一个文件 ...
- [sh]ls -F一种非常有用的ls格式
ls -F一种非常有用的ls格式 tz/y/yupeng > ls -F#q# News/ doc/ images/ mbox ...