2016-05-26 6 views
0

私はVS 2013を使用しています。「作業指示書」を作成しようとしています。現在、ユーザーは在庫グリッドからアイテムを選択します。次に、 "View Selection"ボタンをクリックすると、Aspxgridviewにある選択された項目とともに次のページが開きます。ここでは、各項目の数量を入力する必要があります。編集内容を保存するにはどうすればよいですか?メモリ内にあるクライアント側のAspxgridviewオブジェクトデータソースを編集します。

ViewWorkOrder.aspx/Aspxgridview:

<dx:ASPxCallbackPanel runat="server" ID="ASPxCallbackPanelList" ClientInstanceName="CallbackPanelList" ClientSideEvents-EndCallback="OnEndCallback" EnableTheming="False"> 
        <ClientSideEvents EndCallback="OnEndCallback"></ClientSideEvents> 
        <PanelCollection> 
         <dx:PanelContent> 
    <dx:ASPxButton ID="ASPxButtonRequestItems" runat="server" EnableTheming="True" Text="Request Items" Theme="Office2003Olive" > 
    </dx:ASPxButton> 

    <dx:ASPxGridView ID="GridViewWorkOrder" ClientInstanceName="GridViewWorkOrder" runat="server" AutoGenerateColumns="False" DataSourceID="InventoryDataSource" EnableTheming="True" Theme="Office2003Olive" KeyFieldName="Item_ID"> 

     <Columns> 
      <dx:GridViewDataTextColumn FieldName="Item_ID" VisibleIndex="7" Visible="False" Width="0px"> 
       <Settings AllowAutoFilter="False" AllowGroup="False" AllowSort="False" /> 
      </dx:GridViewDataTextColumn> 
      <dx:GridViewDataTextColumn FieldName="Order_ID" VisibleIndex="8" Visible="False"> 
      </dx:GridViewDataTextColumn> 
      <dx:GridViewDataTextColumn FieldName="User_ID" VisibleIndex="9" Visible="False"> 
      </dx:GridViewDataTextColumn> 
      <dx:GridViewDataDateColumn FieldName="Date_Of_Order" VisibleIndex="1" Caption="Date" ReadOnly="True"> 
      </dx:GridViewDataDateColumn> 
      <dx:GridViewDataTextColumn FieldName="Warehouse" VisibleIndex="6" Caption="WH" ReadOnly="True"> 
      </dx:GridViewDataTextColumn> 
      <dx:GridViewDataTextColumn FieldName="Department_Selected" VisibleIndex="10" Visible="False"> 
      </dx:GridViewDataTextColumn> 
      <dx:GridViewDataTextColumn FieldName="Equipment_Selected" VisibleIndex="11" Visible="False"> 
      </dx:GridViewDataTextColumn> 
      <dx:GridViewDataTextColumn FieldName="Item_Selected" VisibleIndex="4" Caption="Item#" ReadOnly="True"> 
      </dx:GridViewDataTextColumn> 
      <dx:GridViewDataTextColumn FieldName="Quantity_Of_Order" VisibleIndex="2" Caption="Enter QTY" Width="5px" > 
       <FilterCellStyle Wrap="True"> 
       </FilterCellStyle> 
       <HeaderStyle Wrap="True" /> 
       <CellStyle BackColor="#CCFF99"> 
       </CellStyle> 

      </dx:GridViewDataTextColumn> 
      <dx:GridViewDataTextColumn FieldName="Cost_Of_Item" VisibleIndex="3" Caption="Cost" ReadOnly="True"> 
       <PropertiesTextEdit DisplayFormatString="{0:c}"> 
       </PropertiesTextEdit> 
      </dx:GridViewDataTextColumn> 
      <dx:GridViewDataTextColumn Caption="Item" FieldName="Item_Description" ShowInCustomizationForm="True" VisibleIndex="5" ReadOnly="True"> 
      </dx:GridViewDataTextColumn> 
     </Columns>   

     <SettingsBehavior AllowFocusedRow="True" /> 
     <SettingsEditing Mode="Batch"> 
     </SettingsEditing> 
     <Settings ShowFooter="True" /> 
     <SettingsDataSecurity AllowDelete="False" AllowEdit="True" AllowInsert="False" /> 
    </dx:ASPxGridView>  


    <asp:ObjectDataSource ID="InventoryDataSource" runat="server" SelectMethod="GetCheckBoxInventoryItem" TypeName="GetGridData" > 
     <SelectParameters> 
      <asp:Parameter Name="User_ID" Type="Int64" /> 
     </SelectParameters> 
    </asp:ObjectDataSource> 

       </dx:PanelContent> 
       </PanelCollection>   
      </dx:ASPxCallbackPanel> 

この時点でグリッドとは何の関係もありませんページロードイベント以外の背後にあるコードはありません。

updatemethodが設定されていません。これが私がエラーを受けている理由です。 (写真を参照して、それが一番上の写真です。)私は助けを必要ところだ...。ここ は、ObjectDataSourceのを移入するコードです:

Imports Microsoft.VisualBasic 
Imports System.Data 
Imports System.IO 
Imports System.Data.SqlClient 
Imports System.Web 
Imports System.Web.HttpContext 
Imports System.Drawing 
Imports System.Web.HttpApplication 

Public Module GetGridData 

    Dim _FilteredInventoryList As New List(Of Inventory) 


    Public Function GetCheckBoxInventoryItem(User_ID As Long) As List(Of OrderItem) 

     Dim ItemList As Object = Split(mUser.SelectedInventoryCheckBox, "|") 
     Dim _OrderItems As New List(Of OrderItem) 
     _OrderItems.Clear() 
     For Each r As String In ItemList 
      Dim SelectedItem As String = Trim(r) 
      _FilteredInventoryList = mInventorys.FindAll(Function(x) Trim(x.ID_Number) = SelectedItem) 
      Dim _OrderItem As OrderItem 
      For Each p In _FilteredInventoryList 
       _OrderItem = New OrderItem 
       With _OrderItem 
        .Item_ID = p.ID_Number 
        .Item_Selected = p.Item_Number 
        .Item_Description = p.Item_Description 
        .Cost_Of_Item = p.Current_Cost 
        .Quantity_Of_Order = Nothing 
        .Date_Of_Order = Now 
        .Warehouse = p.Warehouse_Location 

       End With 
       _OrderItems.Add(_OrderItem) 
      Next 
     Next 
     GetCheckBoxInventoryItem = _OrderItems 
    End Function 

私は、実際のデータベースを更新する必要はありません。私はちょうどそれを保存したいと思うし、 "アイテムのリクエスト"ボタンをクリックし、それは倉庫に注文をメールします。

ありがとうございます!

Snapshots

+0

は誰もこれを支援することができます他に何もする必要はありませんか?ありがとう! –

答えて

0

私はVBに精通していません。だから私はここでベストを尽くします。

まず:

- あなたはGetGridDataクラスの更新メソッドを作成する必要があります。

Public Function UpdateWorkOrder(pUser_id as long, pQuantity_Of_Order as decimal) 
{ 
    /* UPDATE on database WorkOrder code */ 
} 


二 -

ASPに行くのObjectDataSource ID = "InventoryDataSource"を上記作成方法としてUpdateMethodを設定します。グリッドは、すでにユーザーが編集していることをコラムに更新ボタンがある場合

<asp:ObjectDataSource 
    ID="InventoryDataSource" runat="server" 
    TypeName="GetGridData" 
    SelectMethod="GetCheckBoxInventoryItem" 
    UpdateMethod="UpdateWorkOrder"> 
    <SelectParameters> 
     <asp:Parameter Name="User_ID" Type="Int64" /> 
    </SelectParameters> 
    <UpdateParameters> 
     <asp:Parameter Name="User_ID" Type="Int64" /> 
     <asp:Parameter Name="Quantity_Of_Order" Type="Decimal" /> 
    </UpdateParameters> 
</asp:ObjectDataSource> 


、あなたは

関連する問題