首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASPxGridView GetSelectedFieldValues不工作

ASPxGridView GetSelectedFieldValues不工作
EN

Stack Overflow用户
提问于 2012-05-19 00:43:00
回答 3查看 9K关注 0票数 0

我想选择一行并对它的Id列做一些操作,但是它不起作用,而且我遇到了最后提到的错误。这就是我得到的-

ASPxGridView代码片段-

代码语言:javascript
复制
<dx:ASPxGridView ID="ASPxGridView1" runat="server" Font-Names="Arial" Font-Size="Small"
  Width="100%" ClientInstanceName="grid" oncustomcallback="grid_CustomCallback"                                              
  onbeforegetcallbackresult="ASPxGridView1_BeforeGetCallbackResult" 
  EnableCallBacks="False" EnableRowsCache="False" KeyFieldName="ID">

... Columns here ...

<ClientSideEvents ContextMenu="OnContextMenu" SelectionChanged="OnSelectionChanged" />      
</dx:ASPxGridView>

注意:网格是通过DataTable填充的

DataTable代码-

代码语言:javascript
复制
protected DataTable GetHeadlineData(SqlDataReader rdr)
{
    DataTable headlineTable = new DataTable();        
    headlineTable.Load(rdr)
    headlineTable.PrimaryKey = new DataColumn[] { headlineTable.Columns["ID"] };
    return headlineTable;
}

PageLoad代码-

代码语言:javascript
复制
DataTable dt= new DataTable();    
dt= FillGrid(); //this function internally calls the above GetHeadlineData function
Session["headTable"] = dt;
ASPxGridView1.DataSource = Session["headTable"];
ASPxGridView1.KeyFieldName = "ID";
ASPxGridView1.DataBind();

SelectionChanged函数-

代码语言:javascript
复制
    function OnSelectionChanged(s, e) {              
        grid.GetSelectedFieldValues("ID", OnGetSelectedFieldValues);            
    }

    function OnGetSelectedFieldValues(result) {
        for (var i = 0; i < result.length; i++)
            for (var j = 0; j < result[i].length; j++) {
                document.getElementById('selectedRowDiv').innerHTML = result[i];                    
            }
    }        

我得到了一个错误-

代码语言:javascript
复制
A primary key field specified via the KeyFieldName property is not found in the 
underlying data source. Make sure the field name is spelled correctly. Pay 
attention to the character case.
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-21 22:47:40

最终起作用的是使用RowClick事件而不是SelectionChanged。

票数 0
EN

Stack Overflow用户

发布于 2012-05-19 19:21:47

尝试将您的代码从Page_Load移动到Page_Init方法。在这种情况下,一切都应该像预期的那样工作。

票数 1
EN

Stack Overflow用户

发布于 2012-10-04 18:33:55

代码语言:javascript
复制
 <dx:ASPxGridView ID="grid" ClientInstanceName="grid" runat="server" DataSourceID="AccessDataSource1"
            KeyFieldName="CustomerID" Width="100%">
                    </dx:ASPxGridView>

您必须提供唯一的Ky列名KeyFieldName="Unique Name"

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10656579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档