2016-04-01 10 views
0

私はVS 2013 VBを使用しています。私はobjectdatasourceを使用するaspxgridviewを持っています。列の1つは、「選択」という名前のチェックボックスとして使用されるコマンド列です。ユーザーがチェックボックスを選択してから別のページに移動し、そのページに戻って選択したチェックボックスにチェックマークが消えた場合。選択を保持していません。 これは在庫アイテムのグリッドです。私は複数の選択をして、ボタンをクリックしたいと思います。ボタンをクリックすると、チェックされたアイテムと別のページを開きます。これは、作業命令を作成することです。ページが変更されたときにAspxgridviewコマンドの列が値を失う

どのようにこれを達成するためのアイデアですか?私はVBではなくC#を使用しています。 ありがとうございます!以下 はグリッドです:*

*<dx:GridViewDataTextColumn ShowInCustomizationForm="True" VisibleIndex="0"> 
       <DataItemTemplate> 
       <dx:ASPxCheckBox ID="wed" runat="server" OnInit="cb_Init">        
       </dx:ASPxCheckBox> 
       </DataItemTemplate> 
       </dx:GridViewDataTextColumn>* 

*

を追加しました::

</dx:ASPxGridView>   
     <dx:ASPxHiddenField ID="hf" runat="server" ClientInstanceName="hf"> 
     </dx:ASPxHiddenField> 

<dx:ASPxGridView ID="gvInventory" runat="server" AutoGenerateColumns="False" DataSourceID="InventoryDataSource" EnableTheming="True" Theme="Office2003Olive" EnableRowsCache="False" KeyFieldName="ID_Number"> 
    <Columns> 
      <dx:GridViewDataTextColumn FieldName="ID_Number" Visible="False" VisibleIndex="7"> 
      </dx:GridViewDataTextColumn> 
      <dx:GridViewDataTextColumn Caption="Item" FieldName="Item_Number" VisibleIndex="2" Width="25px"> 
      </dx:GridViewDataTextColumn> 
      <dx:GridViewDataTextColumn Caption="Description" FieldName="Item_Description" VisibleIndex="3"> 
      </dx:GridViewDataTextColumn> 
      <dx:GridViewDataTextColumn Caption="Cost" FieldName="Current_Cost" VisibleIndex="6" Width="15px"> 
       <PropertiesTextEdit DisplayFormatString="{0:c}"> 
       </PropertiesTextEdit> 
      </dx:GridViewDataTextColumn> 
      <dx:GridViewDataTextColumn Caption="WH" FieldName="Warehouse_Location" VisibleIndex="4" Width="15px"> 
      </dx:GridViewDataTextColumn>    
      <dx:GridViewDataDateColumn Caption="Date Rcv'd" FieldName="Last_Receipt_Date" VisibleIndex="1" Width="25px"> 
      </dx:GridViewDataDateColumn>    
      <dx:GridViewDataTextColumn Caption="QTY On Hand" FieldName="Quantity_On_Hand" VisibleIndex="5" Width="20px">     
       <HeaderStyle Wrap="True" /> 
      </dx:GridViewDataTextColumn> 
      <dx:GridViewDataTextColumn FieldName="Current_Month_Issue_Quantity" Visible="False" VisibleIndex="17"> 
      </dx:GridViewDataTextColumn>   

      **<dx:GridViewCommandColumn Caption="Select" ShowInCustomizationForm="True" ShowSelectCheckbox="True" VisibleIndex="0"> 
      </dx:GridViewCommandColumn>** 

変更チェックボックス.vbページで

が追加さ:

Protected Sub cb_Init(ByVal sender As Object, ByVal e As EventArgs) 
     Dim cb As ASPxCheckBox = CType(sender, ASPxCheckBox) 
     Dim container As GridViewDataItemTemplateContainer = CType(cb.NamingContainer, GridViewDataItemTemplateContainer) 

     Dim key As String = String.Format("{0}_{1}", container.Column.Name, container.VisibleIndex) 
     cb.ClientSideEvents.CheckedChanged = String.Format("function(s, e) {{ hf.Set('{0}', s.GetChecked()); }}", key) 
     cb.ClientSideEvents.Init = String.Format("function(s, e) {{ s.SetChecked(hf.Get('{0}')); }}", key) 
    End Sub 

を私はでこれを見つけた:https://www.devexpress.com/Support/Center/Question/Details/Q527992

あなたの助けのすべてのために、KRobをありがとう!

+0

の場合、AllowEdit = "False"をtrueに設定する必要はなく、グリッドのUpdateMethodは必要ありませんか?あなたは "選択"を永続的にしたいと思うし、バックエンドまでグリッドビューをフックすることがそれを達成する方法になります。 – KRob

+0

私はユーザーが任意のデータを編集できるようにしたいので、それは偽でなければなりません。データソースにはバイナリフィールドはありません。そして、データベースにフィールドを追加することはできません。私は、ページが変更され、すべてのコードがC#で書かれているか、または私がaspxgridviewを使用しているグリッドビューを使用しているか、グリッドビューが動的に構築されていることを確認した。私は自分のシナリオで何かを見つけることができない。入力いただきありがとうございます。 –

+0

この場合、セッション変数ワークに選択値を格納しますか? List(Of KeyValuePair(Of Integer、Boolean))を使用して、行インデックスとチェックボックス値を追跡します。その後、Session.Add( "keyValuePair"、CheckboxListValues)を使用してセッションに格納します。実行可能であると思えば、私は完全な例を提供することができます – KRob

答えて

関連する問題