注意:下文中出现的"前台",是指在asp.net页面操作数据,即使用javascript来实现的。"后台"是指在cs页面,即使用C#语言来实现的。
一、获取SmartGrid控件中的数据
(1)从前台获取数据方法获取数据的方法:getGridData(),返回xml对象,可以通过DOM操作转换为行数据。根节点名称为“data”。
语法:getGridData()
例:
var grid = document.getElementById("<%=SmartGrid1.ClientID % >");
var data = new ActiveXObject("MSXML.DOMDocument");
data = grid.getGridData();
alert(data.xml);
var details = data.getElementsByTagName("data");
if (details.length > 0) {
var rows = details[0].getElementsByTagName("row");
for (var i = 0; i < rows.length; i++) {
for (var j = 0; j < rows[i].attributes.length; j++) {
alert("name=" + rows[i].attributes[j].name + ";value=" + rows[i].attributes[j].value);
}
}
}
(2)后台获取数据方法1:访问DataSource属性
可将DataSource属性的值转化为DataTable,再进行下一步的操作。
示例:
DataTable dt=this.SmartGrid1.DataSource as DataTable
……
(3)后台获取数据方法2:访问ClientData属性
同上。
二、SmartGrid前台搜索数据(search)
语法:search(string pattern,string columnName,bool bForce)
参数pattern:进行查询的正则表达式。正则表达式js中search使用的正则表达式。缺省为包含。
参数columnName:在哪一列进行查询。如果该列名为空,则缺省从当前的anchor列进行检索。
参数bForce:强制从第一行开始检索。缺省从当前行开始检索
在调用search()时可省略相关参数。
与搜索相关的属性有SearchOption,可以取如下值:
Client: 在客户端已有的数据中进行检索。
Server: 触发服务器端 Search 事件,这使您可以为事件提供自定义处理程序。
Custom: 触发自定义检索事件。
搜索到数据后会自动跳到符合条件的行
例1.
var grid = document.getElementById("<%=SmartGrid1.ClientID % >");
var data = new ActiveXObject("MSXML.DOMDocument");
var cond = document.getElementById("txtSearchCondition").value;
//cond=”^abc”
grid.search(cond); //从当前行开始在所有栏位中查找以“abc“开头的数据
例2.
var grid = document.getElementById("<%=SmartGrid1.ClientID % >");
var data = new ActiveXObject("MSXML.DOMDocument");
var cond = document.getElementById("txtSearchCondition").value;
//cond=”^abc$”
grid.search(cond); //从当前行开始在所有栏位中查找等于“abc“的数据
例3.
var grid = document.getElementById("<%=SmartGrid1.ClientID % >");
var data = new ActiveXObject("MSXML.DOMDocument");
var cond = document.getElementById("txtSearchCondition").value;
var colName = document.getElementById("txtSearchColName").value;
//colName=”TaskName”
//cond=”abc”
grid.search(cond,colName); //从当前行开始在TaskName栏位中查找包含“abc“的数据
例4.
var grid = document.getElementById("<%=SmartGrid1.ClientID % >");
var data = new ActiveXObject("MSXML.DOMDocument");
var cond = document.getElementById("txtSearchCondition").value;
var colName = document.getElementById("txtSearchColName").value;
//colName=”TaskName”
//cond=”abc$”
grid.search(cond,colName,true); //从第一行开始在TaskName栏位中查找以“abc”结尾的数据
三、SmartGrid后台搜索数据(search)
设置SearchOption=”Server”,OnSearch=”事件名称”
Search事件的委托原型;
public delegate void SmartGridSearchEventHandler(object sender,SmartGridSearchEventArgs e)
SmartGridSearchEventArgs类包含2个重要属性:
ColumnName:在哪一列进行查询。如果该列名为空,则缺省从当前的anchor列进行检索。
Pattern:进行查询的正则表达式。正则表达式js中search使用的正则表达式。缺省为包含。r