[英]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 :同样检查以下示例:
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.