欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » AspxGridView使用教程 » 正文

AspxGridView中列的取值与赋值

创建时间:2011年11月30日 23:08  阅读次数:(15084)
分享到:
一、从客户端对AspxGridView的列进行取值与赋值

1.使用GetPageRowValues取当前页指定栏位值
语法;function GetPageRowValues(fieldNames : String,onCallback : ASPxClientGridViewValuesCallback);
例:
function GetPageRowValues() {
    var fieldNames = document.getElementById("txtFieldName_GetPageRowValues").value;
    grid.GetPageRowValues(fieldNames, GetPageRowValues_Callback);
}
function GetPageRowValues_Callback(result) {
    var msg = "";
    if (result.length  > 0) {
        for (var i = 0; i < result.length; i++) {
            msg = msg + result[i].toString() + ",";
        }
        msg = msg.substring(0, msg.length - 1);
    }
    alert(msg);
}

2.使用GetRowValues取指定行指定栏位值
语法:function GetRowValues(visibleIndex : int,fieldNames : String,
onCallback : ASPxClientGridViewValuesCallback);

3.使用GetSelectedFieldValues取选中行指定栏位值
语法:function GetSelectedFieldValues(fieldNames : String,onCallback :ASPxClientGridViewValuesCallback);

4.取栏位实例
(1)使用GetColumn方法
语法:function GetColumn(columnIndex : int) : ASPxClientGridViewColumn;
(2)使用GetColumnByField方法
语法:function GetColumnByField(columnFieldName : String) : ASPxClientGridViewColumn;
(3)使用GetColumnById方法
语法:function GetColumnById(columnId : String) : ASPxClientGridViewColumn;

5.使用GetColumnsCount取栏位总数
语法:function GetColumnsCount() : int;

6.使用MoveColumn隐藏和移动栏位
(1)隐藏列
语法1:void MoveColumn(ASPxClientGridViewColumn column);
语法2:void MoveColumn(int columnIndex);
语法3:void MoveColumn(string columnFieldNameOrId);

(2)移动列
语法4:void MoveColumn(ASPxClientGridViewColumn column, int moveToColumnVisibleIndex);
语法5:void MoveColumn(int columnIndex, int moveToColumnVisibleIndex);
语法6:void MoveColumn(string columnFieldNameOrId,int moveToColumnVisibleIndex);
语法7:void MoveColumn(string columnFieldNameOrId,int moveToColumnVisibleIndex, bool
moveBefore);
语法8:void MoveColumn(int columnIndex, int moveToColumnVisibleIndex, bool moveBefore);
语法9:void MoveColumn(ASPxClientGridViewColumn column, int moveToColumnVisibleIndex, bool
moveBefore);
语法10:void MoveColumn(string columnFieldNameOrId,int moveToColumnVisibleIndex, bool
moveBefore, bool moveToGroup);
语法11:void MoveColumn(int columnIndex, int moveToColumnVisibleIndex, bool moveBefore,
bool moveToGroup);
语法12:void MoveColumn(ASPxClientGridViewColumn column, int moveToColumnVisibleIndex, bool
moveBefore, bool moveToGroup);
语法13:void MoveColumn(ASPxClientGridViewColumn column, int moveToColumnVisibleIndex, bool
moveBefore, bool moveToGroup, bool moveFromGroup);
语法14:void MoveColumn(string columnFieldNameOrId,int moveToColumnVisibleIndex, bool
moveBefore, bool moveToGroup, bool moveFromGroup);
语法15:void MoveColumn(int columnIndex, int moveToColumnVisibleIndex, bool moveBefore,
bool moveToGroup, bool moveFromGroup);

7. 使用GetRowKey取行主键值
语法:string function GetRowKey(visibleIndex : int)

二、从服务器端对AspxGridView的列进行取值与赋值
1.取得某一行数据的方法:
(1)使用GetDataRow方法取指定行数据
语法:DataRow GetDataRow(int visibleIndex)
visibleIndex:行号。可以是不在当前页上的行。只有通过DataSourceID绑定数据才可获取到数据,如果通过DataSource绑定数据是获取不到值的。
例:
string srowIndex = this.txtGetDataRowIndex.Text;
int rowIndex;
if(Int32.TryParse(srowIndex,out rowIndex))
{
    DataRow dr = this.ASPxGridView1.GetDataRow(rowIndex);//取指定行数据
    if (dr != null)
    {
        string msg = "LogID=" + dr["LogID"].ToString() + ";Event=" + dr["Event"].ToString();
        Response.Write(msg);        
    }
}


(2)使用GetRow方法取指定行数据
语法:object GetRow(int visibleIndex)
visibleIndex:行号。可以是不在当前页上的行。
该函数返回的是object类型,实际类型通常是DataRowView。

2.取得某一列的数据
(1)使用GetRowValues方法获取指定栏位值
语法:object GetRowValues(int visibleIndex,parms string fieldnames[])
如果fieldNames只指定一个栏位,GetRowValues将返回object类型,程序员应转换为正确的数据类型。如果fieldNames指定了多个栏位,GetRowValues将返回object[]类型,可以通过is判断返回值。
例:
string srowIndex = this.txtGetDataRowIndex.Text;
int rowIndex;
string[] fieldName;
string tempFieldName;
object tempColumnValues;
object[] columnValues;
StringBuilder msg = new StringBuilder();
int count=0;

tempFieldName = this.txtGetValueColumnNames.Text;
fieldName = tempFieldName.Split(',');//分解字符串到数组
if (Int32.TryParse(srowIndex, out rowIndex))
{
    tempColumnValues = this.ASPxGridView1.GetRowValues(rowIndex, fieldName);//取值
    if (tempColumnValues is System.Object[])//返回数组
    {
        columnValues = (System.Object[])tempColumnValues;
        count = Math.Min(fieldName.Length, columnValues.Length);
        for (int i = 0; i < count; i++)
        {
            msg.Append(fieldName[i] + "=" + columnValues[i].ToString());
        }
    }
    else//返回单个值
    {
        msg.Append(tempFieldName);
        msg.Append("=");
        msg.Append(tempColumnValues.ToString());
    }
    Response.Write(msg.ToString());
}

(2)使用GetRowValuesByKeyValue方法获取指定栏位值
语法:object GetRowValuesByKeyValue(object keyValue,parms string fieldnames[])
GetRowValuesByKeyValue方法与GetRowValues方法类似,只是前者通常主键值找到对应行再获取栏位值而已。

(3)使用GetSelectedFieldValues方法获取选中行指定栏位值
语法:List<object >GetSelectedFieldValues(parms string fieldnames[])
如果fieldNames只指定一个栏位,GetSelectedFieldValues将返回object列表(各栏位值数组),程序员应转换为正确的数据类型。如果fieldNames指定了多个栏位,GetSelectedFieldValues将返回object[]列表(逐行指定栏位值数组),可以通过is判断返回值。
例:
string tempFieldName = this.txtGetValueColumnNames.Text;
string[] fieldName = tempFieldName.Split(',');//分解字符串到数组
StringBuilder msg = new StringBuilder();
List<object > tempFieldValues = this.ASPxGridView1.GetSelectedFieldValues(fieldName);//取选中行栏位值
//GetSelectedFieldValues返回值先行后列(类似二维数组)
//行列值行列值行列M值
//行N列值行N列值行N列M值
for (int i = 0; i < tempFieldValues.Count; i++)
{
    if (tempFieldValues[i] is System.Object[])//返回数组
    {
        object[] fieldValues = (object[])tempFieldValues[i];
        for (int j = 0; j < fieldValues.Length; j++)
        {
            msg.Append(fieldValues[j].ToString());
        }
    }
    else
    {
        msg.Append(tempFieldValues[i].ToString());
    }
}
Response.Write(msg.ToString());


(4)使用GetCurrentPageRowValues方法获取当前页指定栏位值
语法:List<object >GetCurrentPageRowValues (parms string fieldnames[])
用法类似GetSelectedFieldValues。
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf】

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 37+68=? 的结果(结果是:105)
结  果: