Я использую VS 2013 VB. У меня есть aspxgridview, который использует objectdatasource. Один из столбцов - это столбец команд, который используется как флажок «Выбрать». Когда пользователь выбирает флажок, а затем переходит на другую страницу, а затем обратно на страницу, где они сделали выбранный флажок, чтобы галочка исчезла. Он не сохраняет выбор. Это сетка предметов инвентаря. Я хочу сделать несколько вариантов, а затем нажать кнопку. При нажатии кнопки я хочу открыть отдельную страницу с элементами, которые были проверены. Это необходимо для создания рабочего порядка.Столбец команды Aspxgridview теряет значение при изменении страницы
Любые идеи о том, как это сделать? Я использую VB, а не C#. Спасибо заранее! Ниже сетка:
<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>**
Измененное Checkbox на: *
*<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>
В .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 для вашей сетки? Похоже, вы хотите, чтобы «Выбрать» был постоянным, и для этого можно было бы подключить gridview до фонового. – KRob
Я не хочу, чтобы пользователь мог редактировать любые данные, чтобы он был ложным. У источника данных нет бинарного поля. И я не могу добавить поле в базу данных. Я исследовал относительно флажка, теряющего значение при изменении страницы, и нашел, что весь код либо написан на C#, либо они используют gridview, где я использую aspxgridview или их gridview построено динамически. Кажется, я не вижу ничего с моим сценарием. Спасибо за ввод. –
В этом случае будет сохраняться значение Select в переменной сеанса? Вы отслеживаете индекс строки и значение флажка со списком (из KeyValuePair (Integer, Boolean)). Затем сохраните это в сеансе с Session.Add («keyValuePair», CheckboxListValues). Если вы считаете, что это жизнеспособно, я могу привести полный пример – KRob