2017-06-30 26 views
0

我想在用戶選擇一行並單擊按鈕時在客戶端顯示選定的行。爲什麼選擇的行值不會在devexpress客戶端使用ASP.Net顯示?

我試圖從這個devexpress link

我與我的代碼相同的情況下嘗試過的代碼,但它會拋出錯誤

這裏是我的代碼

<dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource3" Width="100%" SettingsBehavior-AllowSelectByRowClick="True" OnSelectionChanged="btnSearch_Click"> 
    <Settings HorizontalScrollBarMode="Visible" ShowFilterRow="True" ShowGroupedColumns="True" ShowTitlePanel="True" ShowGroupPanel="True" /> 

    <SettingsSearchPanel Visible="True" /> 
    <Columns> 
     <dx:GridViewCommandColumn ShowSelectCheckbox="true" VisibleIndex="0"></dx:GridViewCommandColumn> 
     <dx:GridViewDataTextColumn FieldName="Status" ReadOnly="True" VisibleIndex="0"></dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="WorksheetID" VisibleIndex="1"></dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="POTitle" VisibleIndex="2" Width="200px" ExportWidth="100" MinWidth="100"></dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="FromStoreName" VisibleIndex="3"></dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="FromPONumber" VisibleIndex="4"></dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="ToStoreName" VisibleIndex="5"></dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="ToPONumber" VisibleIndex="6"></dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="FromStoreID" VisibleIndex="7"></dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="ToStoreID" VisibleIndex="8"></dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="FromPlacementStatus" ReadOnly="True" VisibleIndex="9"></dx:GridViewDataTextColumn> 
     <dx:GridViewDataDateColumn FieldName="FromDatePlaced" VisibleIndex="10"></dx:GridViewDataDateColumn> 
     <dx:GridViewDataTextColumn FieldName="ToPlacementStatus" ReadOnly="True" VisibleIndex="11"></dx:GridViewDataTextColumn> 
     <dx:GridViewDataDateColumn FieldName="ToDatePlaced" VisibleIndex="12"></dx:GridViewDataDateColumn> 
     <dx:GridViewDataDateColumn FieldName="LastUpdated" VisibleIndex="13"></dx:GridViewDataDateColumn> 
     <dx:GridViewDataTextColumn FieldName="IssueQty" VisibleIndex="14">   </dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="IssueValue" VisibleIndex="15"></dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="ReceivedQty" VisibleIndex="16"></dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="ReceivedValue" VisibleIndex="17"></dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="DiscrepancyQty" ReadOnly="True" VisibleIndex="18"></dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="Discrepancy" ReadOnly="True" VisibleIndex="19"></dx:GridViewDataTextColumn> 
    </Columns> 

</dx:ASPxGridView> 
<asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:HQMatajer13 %>" 
    SelectCommand="select top 10000 
     CASE WHEN FromStatus = 0 AND (ToStatus = 0 OR ToStatus IS NULL OR (ToStoreID = 0 AND WorksheetID = 0)) THEN 'Open' 
     WHEN ToStatus = 0 AND (FromStatus IS NULL OR (FromStoreID = 0 AND WorksheetID = 0)) THEN 'Open' 
     WHEN FromStatus = 2 AND (ToStatus = 2 OR (ToStoreID = 0 AND WorksheetID = 0)) THEN 'Closed' 
     WHEN ToStatus = 2 AND (FromStoreID = 0 AND WorksheetID = 0) THEN 'Closed' 
     ELSE 'Partial' 
    END Status, 
    F_ViewInventoryTransferList2.WorksheetID, 
    F_ViewInventoryTransferList2.POTitle, 
    F_ViewInventoryTransferList2.FromStoreName, 
    F_ViewInventoryTransferList2.FromPONumber, 
    F_ViewInventoryTransferList2.ToStoreName, 
    F_ViewInventoryTransferList2.ToPONumber, 
    F_ViewInventoryTransferList2.FromStoreID, 
    F_ViewInventoryTransferList2.ToStoreID, 
    CASE FromIsPlaced WHEN 0 THEN 'Not placed' WHEN 1 THEN 'Placed' ELSE 'Unknown' END FromPlacementStatus, 
    F_ViewInventoryTransferList2.FromDatePlaced, 
    CASE ToIsPlaced WHEN 0 THEN 'Not placed' WHEN 1 THEN 'Placed' ELSE 'Unknown' END ToPlacementStatus, 
    F_ViewInventoryTransferList2.ToDatePlaced, 
    F_ViewInventoryTransferList2.LastUpdated, 
    F_ViewInventoryTransferList2.IssueQty, 
    F_ViewInventoryTransferList2.IssueValue, 
    F_ViewInventoryTransferList2.ReceivedQty, 
    F_ViewInventoryTransferList2.ReceivedValue, 
    CASE WHEN (ToStoreID = 0 AND WorksheetID = 0) THEN 0 
     WHEN (FromStoreID = 0 AND WorksheetID = 0) THEN 0 
     ELSE F_ViewInventoryTransferList2.ReceivedQty + F_ViewInventoryTransferList2.IssueQty 
    END DiscrepancyQty, 
    CASE WHEN (ToStoreID = 0 AND WorksheetID = 0) THEN 0 
     WHEN (FromStoreID = 0 AND WorksheetID = 0) THEN 0  
     ELSE F_ViewInventoryTransferList2.ReceivedValue + F_ViewInventoryTransferList2.IssueValue 
    END Discrepancy 
from F_ViewInventoryTransferList2"> 
</asp:SqlDataSource>     

    <dx:ASPxButton ID="ASPxButton1" AutoPostBack="False" runat="server" Text="test" UseSubmitBehavior="False"> 

     <ClientSideEvents Click="function(s, e) { 
    ASPxGridView1.GetSelectedFieldValues('WorksheetID', OnGetSelectedFieldValues); 
}" /> 
    </dx:ASPxButton> 

Javascript代碼:

<script> 
    function OnGetSelectedFieldValues(selectedValues) { 
     //listBox.ClearItems(); 
     alert("Workingggg..."); 
     if (selectedValues.length == 0) return; 
     for (i = 0; i < selectedValues.length; i++) { 
      s = ""; 
      for (j = 0; j < selectedValues[i].length; j++) { 
       s = s + selectedValues[i][j] + "&nbsp;"; 
      } 
      //listBox.AddItem(s); 
      alert(s); 
     } 
    } 
</script> 

錯誤消息 error msg screenshot

即使我嘗試服務器端獲取數據,它會引發同樣的錯誤。這是link用於服務器端是我的嘗試

回答

1

這個錯誤是因爲你必須指定一個KeyFieldNameColumn,就像在SQL中PrimaryKey,但這是DevExpress的表。總部設在你的代碼

我覺得是WorksheetID(但您可以通過另一個字段名更改),所以你必須改變下一行:

<dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource3" Width="100%" SettingsBehavior-AllowSelectByRowClick="True" OnSelectionChanged="btnSearch_Click" KeyFieldName="WorksheetID"> 
+0

的'KeyFieldName'應該是唯一的? –

+1

我不記得現在這個,但我總是在一個隱藏的列中使用數據源的主鍵 – Dani

相關問題