私は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をありがとう!
の場合、AllowEdit = "False"をtrueに設定する必要はなく、グリッドのUpdateMethodは必要ありませんか?あなたは "選択"を永続的にしたいと思うし、バックエンドまでグリッドビューをフックすることがそれを達成する方法になります。 – KRob
私はユーザーが任意のデータを編集できるようにしたいので、それは偽でなければなりません。データソースにはバイナリフィールドはありません。そして、データベースにフィールドを追加することはできません。私は、ページが変更され、すべてのコードがC#で書かれているか、または私がaspxgridviewを使用しているグリッドビューを使用しているか、グリッドビューが動的に構築されていることを確認した。私は自分のシナリオで何かを見つけることができない。入力いただきありがとうございます。 –
この場合、セッション変数ワークに選択値を格納しますか? List(Of KeyValuePair(Of Integer、Boolean))を使用して、行インデックスとチェックボックス値を追跡します。その後、Session.Add( "keyValuePair"、CheckboxListValues)を使用してセッションに格納します。実行可能であると思えば、私は完全な例を提供することができます – KRob