Apr 08, 2014, 4:10 PM
[CLOSED] Finding number of columns of the child grid in multilevel grid
How to find the number of columns in the recently created grid level in multilevel grid. I want that in the success event of the directmethod call to BuildLeve in javascript.
function loadLevel(expander, record, body, row) {
if (body.rendered) { return; }
if (record.data.ChildCount === 0) { return false; }
if (record.get('UrlContactMailTo')) {
record.data.UrlContactMailTo = '';
}
Ext.net.DirectMethods.ControlProxy.BuildLevel(expander.level + 1, record.id, expander.grid.id, record.data, expander.changeHeader, {
eventMask: { showMask: true, msg: localeLang.loadText, tartget: "customtarget", customtarget: expander.grid.body },
success: function () { Ext.net.Mask.hide(); body.parentElement.colSpan = body.parentElement.colSpan + 1; body.rendered = true; },
failure: function (errorMsg) { var m = !Ext.isEmpty(errorMsg) ? errorMsg.substring(0, 1000) : ''; directEventFailure('loadLevel BuildLevel ' + m); }
});
};
<DirectMethod()> _
Public Sub BuildLevel(iLevel As Integer, sRecordID As String, sGridID As String, oRecord As String, bChangeHeader As String)
Dim sStoreID As String = String.Format("L{0}_Store_{1}", iLevel, sRecordID)
Dim sNewGridID As String = String.Format("L{0}_Grid_{1}", iLevel, sRecordID)
Me.mRecord = oRecord
'// ---------------- Store Creation -------------------------
'// Create the reader and add records based on the selector type
Dim reader As ABJsonReader = GetJsonReader(iLevel, sNewGridID)
'// Create the available Store
Dim oStore = GetStore(reader, sStoreID, iLevel, sRecordID, oRecord)
'// ---------------- Grid Creation -------------------------
Dim oGrid As New Ext.Net.GridPanel With {.ID = sNewGridID, .StoreID = sStoreID, .AutoHeight = True, .StripeRows = True, .Cls = "nested-grid"}
GetColumns(iLevel, oGrid)
'// ---------View And Row Explander Creation -------------------------
Dim view = New Ext.Net.GridView() With {.ID = sNewGridID + "_View", .ForceFit = True, .ScrollOffset = 0}
view.Listeners.BeforeRefresh.Fn = "cleanMulti"
oGrid.View.Add(view)
Dim oExpander = GetRowExpander(iLevel, sNewGridID)
oExpander.ChangeHeader = (bChangeHeader = "True")
oGrid.Plugins.Add(oExpander)
'// --------- Store and Grid Caching -------------------------
Dim renderEl As String = oExpander.RenderEl(sRecordID)
Ext.Net.X.[Get](renderEl).SwallowEvent(New String() {"mousedown", "mouseup", "dblclick"}, True)
If bChangeHeader = "True" Then
Me.RemoveFromCache(sStoreID, sGridID, False)
oStore.Render()
Me.AddToCache(sStoreID, sGridID, False)
Me.RemoveFromCache(sNewGridID, sGridID, True)
oGrid.Render(renderEl, RenderMode.RenderTo)
Me.AddToCache(sNewGridID, sGridID, True)
Else
Me.RemoveFromCache(sStoreID, sGridID)
oStore.Render()
Me.AddToCache(sStoreID, sGridID)
Me.RemoveFromCache(sNewGridID, sGridID)
oGrid.Render(renderEl, RenderMode.RenderTo)
Me.AddToCache(sNewGridID, sGridID)
End If
End Sub
Last edited by Daniil; Apr 14, 2014 at 3:09 PM.
Reason: [CLOSED]