0

行を選択してそのID列を使用して何かを実行したいのですが、機能せず、最後に記載されているエラーが発生しています。これが私が得たものです-

ASPxGridViewスニペット-

<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コード-

protected DataTable GetHeadlineData(SqlDataReader rdr)
{
    DataTable headlineTable = new DataTable();        
    headlineTable.Load(rdr)
    headlineTable.PrimaryKey = new DataColumn[] { headlineTable.Columns["ID"] };
    return headlineTable;
}

PageLoadコード-

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関数-

    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];                    
            }
    }        

エラーが発生しました-

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.
4

3 に答える 3

1

コードをPage_LoadメソッドからPage_Initメソッドに移動してみてください。この場合、すべてが期待どおりに機能するはずです。

于 2012-05-19T11:21:46.823 に答える
1
 <dx:ASPxGridView ID="grid" ClientInstanceName="grid" runat="server" DataSourceID="AccessDataSource1"
            KeyFieldName="CustomerID" Width="100%">
                    </dx:ASPxGridView>

一意のKy列名KeyFieldName="一意の列名"を指定する必要があります

于 2012-10-04T10:33:55.413 に答える
0

最終的に機能したのは、SelectionChangedの代わりにRowClickイベントを使用することでした。

于 2012-05-21T14:47:40.390 に答える