繁体   English   中英

Devexpress ASPxGridView GetSelectedFieldValues无法获取值

[英]Devexpress ASPxGridView GetSelectedFieldValues Can't get values

我正在使用带有分页的gridview。 我的网格具有一个命令列,并且ShowSelectCheckbox设置为true。 我在条件[ if (!IsCallback) ]下将DataTable绑定到Page_Load事件的网格。

因此,当我更改页面索引数据时会丢失。 之后,我将绑定代码写入了网格的PageIndexChanged事件。 现在,它就像魅力一样工作。

但是,当发生SelectionChanged事件时, GetSelectedFieldValues仅在首页上起作用。

例如,当我在第一页选择一行时,它将获得我想要的字段值。 但是当我更改pageindex时, GetSelectedField无法获取字段值。 它警告空文本。

如果我在第二个页面索引处选择一行,它也可以在该页面上工作,但是当我更改页面索引时,它又被破坏了。

顺便说一句,当我在没有!IsCallback条件的情况下在PageLoad事件中绑定网格时,它起作用了,但由于其他控件必须更改查询等数据,因此我无法在Page_Load事件!IsCallback其绑定。

这是我的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]);
        }
} 

问题:您的网格支持多种选择吗?

Edit1 :同样检查以下示例:

如何使用GetSelectedFieldValues方法一次获取多个列的值

如何从服务器获取所选记录的值

ASPxClientGridView.GetSelectedFieldValues方法发送回调以获取指定的数据。 因此,如果您未在此回调的服务器端绑定ASPxGridView(并且由于条件[if(!IsCallback)]而实际上并未绑定),则网格将无法返回数据。

顺便说一句,这在当前页面上有效,因为ASPxGridView正在缓存当前页面的数据(请参阅EnableRowsCache属性定义)。

您可能想要尝试关闭网格的回调。 我发现这解决了我在网格中遇到的一些问题。 我不确定这是否可行,但是值得一试。

<dxwgv:ASPxGridView ID="xgvMyGrid" runat="server" AutoGenerateColumns="False"
 EnableCallBacks="False">

注意...尽管网格仍然可以正常工作,但这可能会影响您可能已经在使用的其他代码。

另外,请检查Grid的KeyFieldName。 如果未指定此信息或该信息不正确,则您可能也将无法在GetSelectedFieldValues客户端事件中检索值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM