我正在使用带有分页的 gridview。我的网格有一个命令列并且 ShowSelectCheckbox
设置为 true。我在条件为 [ if (!IsCallback)
] 的 Page_Load
事件中将 DataTable
绑定(bind)到网格。
因此,当我更改页面索引时,数据会丢失。之后,我将绑定(bind)代码写入网格的 PageIndexChanged
事件。现在它就像魅力一样。
但是 GetSelectedFieldValues
仅在发生 SelectionChanged
事件时在第一页起作用。
例如,当我在第一页选择一行时,它会获得我想要的字段值。但是,当我更改 pageindex GetSelectedField
时,无法获取字段值。它会提醒空文本。
如果我在第二页索引处选择一行,它也适用于该页,但当我更改页面索引时,它又被破坏了。
顺便说一句,当我在没有 !IsCallback
条件的情况下在 PageLoad
事件中绑定(bind)网格时它可以工作,但我不能在 Page_Load
事件中绑定(bind)它,因为其他控件必须更改查询等数据。
这是我的 javascript 函数,它会提醒选定的值
<ClientSideEvents SelectionChanged="function(s, e) {
grid.GetSelectedFieldValues('SDNO;SANTRAL',alert);
}" />
和页面索引改变事件
protected void myGrid_PageIndexChanged(object sender, EventArgs e)
{
myGridDataSource = dtable; //dtable is static, i also used BindThat function here too. But no way out.
myGridDataBind();
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsCallback)
{
BindThat(); // Fetch data from db, create dtable and bind it to grid.
}
}
最佳答案
我认为这不是在客户端从网格中获取值的正确方法,请查看以下链接: http://www.devexpress.com/Support/Center/p/Q94237.aspx
[JScript]
function Button1_onclick() {
ASPxGridView1.GetSelectedFieldValues("CategoryID;CategoryName", OnGetSelectedFieldValues);
}
function OnGetSelectedFieldValues(result) {
for(var i = 0; i < result.length; i ++)
for(var j = 0; j <result[i].length; j++) {
alert(result[i][j]);
}
}
问题:你的grid支持多选吗?
编辑1: 还要检查以下示例:
How to use a GetSelectedFieldValues method to obtain values of several columns at once
How to get the values of the selected record from the server
关于c# - Devexpress ASPxGridView GetSelectedFieldValues 无法获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2913283/