Aug 27, 2014, 1:13 PM
[CLOSED] Select box pops open after selecting
When I use this select box to bind my grid, it pops back open. How can I resolve this?
<%@ Page Language="vb" AutoEventWireup="false" %>
<!DOCTYPE html>
<script runat="server">
Dim pager As PagingToolbar = New PagingToolbar
Public Sub BuildStore()
ResetStore()
BuildGrid()
' Setting the page size forces the store to load data.
pager.SetPageSize(20)
End Sub
Protected Sub BuildGrid()
Dim grid As New GridPanel With {.ID = "ResultGrid", .ClientIDMode = UI.ClientIDMode.Static}
'grid.Store.Add(store)
grid.StoreID = ResultStore.ClientID
Dim Column = New Column
With Column
.DataIndex = "Description"
.ColumnID = "Description"
.Width = New Unit(100)
.Header = "Description"
End With
grid.ColumnModel.Columns.Add(Column)
grid.AutoExpandColumn = "Description"
Column = New Column
With Column
.DataIndex = "ANOTHER"
.ColumnID = "ANOTHER"
.Width = New Unit(100)
.Header = "ANOTHER!"
.Hidden = True
End With
grid.ColumnModel.Columns.Add(Column)
grid.AutoExpandColumn = "Description"
' Build the selection model
Dim selmodel = New CheckboxSelectionModel()
With selmodel
.HideCheckAll = True
.IgnoreTargets = {"a"}
End With
grid.SelectionModel.Add(selmodel)
With pager
.ID = "ResultPager"
.ClientIDMode = UI.ClientIDMode.Static
.PageSize = 0
.HideRefresh = True
.StoreID = ResultStore.ClientID
End With
grid.BottomBar.Add(pager)
Dim filter As New GridFilters
filter.Filters.Add(New StringFilter With {.DataIndex = "Description"})
grid.Plugins.Add(filter)
' Render
grid.Render(pan)
'grid.Reconfigure(ResultStore.ClientID, grid.ColumnModel)
End Sub
Protected Sub page_load(sender As Object, e As EventArgs) Handles Me.Load
SearchViewStore.DataSource = {New With {.value = 1, .text = "test"}}.ToList
SearchViewStore.DataBind()
End Sub
Protected Sub ResetStore()
' Clear fields from the store
If Ext.Net.v1.X.IsAjaxRequest Then ResultStore.RemoveFields()
' Add default fields
ResultStore.AddField(New RecordField("Description"))
ResultStore.AddField(New RecordField("ANOTHER"))
' Force the store to reconfigure
ResultStore.ClearMeta()
End Sub
Public Sub ResultGrid_RefreshData(sender As Object, e As StoreRefreshDataEventArgs)
Dim data = {New With {.Description = "Test1", .ANOTHER = "ANOTHER!"}, New With {.Description = "Test2"}}
ResultStore.DataSource = data.ToList
ResultStore.DataBind()
End Sub
Public Sub SearchView_Select(sender As Object, e As DirectEventArgs)
BuildStore()
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<script type="text/javascript">
var showCol = function () {
var cm = ResultGrid.getColumnModel();
// Selected indexes
var selected = [1, 2];
Ext.each(selected, function (index) {
cm.setHidden(index, false);
});
}
</script>
</head>
<body>
<form id="Form1" runat="server">
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<h1>Check All Test</h1>
<ext:SelectBox ID="SearchViewSelect" runat="server" Width="250" Icon="Layout">
<Store>
<ext:Store ID="SearchViewStore" runat="server">
<Reader>
<ext:JsonReader IDProperty="value">
<Fields>
<ext:RecordField Name="value" Type="Int" />
<ext:RecordField Name="text" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
<DirectEvents>
<Select OnEvent="SearchView_Select">
<EventMask ShowMask="true" Msg="Applying View to Results" Target="Page" />
</Select>
</DirectEvents>
</ext:SelectBox>
<ext:Store
ID="ResultStore"
runat="server"
AutoLoad="false"
OnRefreshData="ResultGrid_RefreshData"
SerializationMode="Complex"
RemotePaging="true"
RemoteSort="true">
<Proxy>
<ext:PageProxy />
</Proxy>
<Reader>
<ext:JsonReader IDProperty="Result">
<Fields>
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Panel runat="server" ID="pan" Border="false" Layout="FitLayout" Height="500"></ext:Panel>
</form>
</body>
</html>
Last edited by Daniil; Aug 28, 2014 at 6:58 AM.
Reason: [CLOSED]