我在创造一个Ext.net.GridPanel格式动态地从数据表中添加头数据,但得到一个错误
未捕获的引用错误:tbl2006121743494c8j\u ClientInit不是
定义。
这是我的密码,
页面内容.aspx
<body>
<form id="form1" runat="server">
<div>
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<ext:Store ID="tableStore" runat="server" OnSubmitData="Store_Submit">
<Reader>
<ext:JsonReader />
</Reader>
<DirectEventConfig IsUpload="true" />
</ext:Store>
<ext:Viewport runat="server" Layout="border">
<Items>
<ext:Hidden ID="selectedPageId" runat="server" />
<ext:Hidden ID="currentPageId" runat="server" />
<ext:Panel ID="pnlContent" runat="server" Title="" Cls="PanelTitle" Layout="AbsoluteLayout"
AutoScroll="true" Region="Center">
<TopBar>
<ext:Toolbar ID="contBar" runat="server" Layout="MenuLayout" AutoScroll="true" AutoHeight="true"
CtCls="tbr" />
</TopBar>
<LoadMask Msg="Loading" ShowMask="true" />
</ext:Panel>
</Items>
</ext:Viewport>
</div>
</body>
If (table.IsGridView) Then
Dim gridPanel As Ext.Net.GridPanel = WidgetDisplay.CreateTableGrid(widget,
tableStore)
If Not (Util.isNullOrEmpty(table.DataTable)) Then
tableStore.RemoveAll()
tableStore.DataSource = table.DataTable
tableStore.DataBind()
gridPanel.Render(pnlContent)
End If
pnlContent.Items.Add(gridPanel)
Else
pnlContent.Items.Add(WidgetDisplay.CreateTableItem(widget))
End If
创建表格网格
方法如下,问题是我可以看到列标题显示,但网格数据没有填充和获取错误
Public Shared Function CreateTableGrid(ByRef widget As Widget, ByRef tableStore As Ext.Net.Store) As Ext.Net.GridPanel
Dim gridPanel As New Ext.Net.GridPanel
Dim table As EMB.BLL.Table = widget.Properties
Dim toolBar As New Ext.Net.Toolbar
Dim toExcelButton As New Ext.Net.Button
Dim searchButton As New Ext.Net.Button
Dim textField As New Ext.Net.TextField
Dim comboBox As New Ext.Net.ComboBox
comboBox.ID = widget.WidgetId + "CBB"
gridPanel.StoreID = tableStore.ID
gridPanel.Width = widget.Width
gridPanel.MinWidth = 600
gridPanel.Height = widget.Height
gridPanel.X = widget.PosX
gridPanel.Y = widget.PosY
gridPanel.ID = widget.WidgetId
gridPanel.StripeRows = True
gridPanel.ButtonAlign = Ext.Net.Alignment.Left
gridPanel.AutoWidth = True
tableStore.RemoveFields()
If Not (IsNothing(table.DataTable)) Then
Try
For j As Integer = 0 To table.DataTable.Columns.Count - 1
Dim item As DataColumn = table.DataTable.Columns(j)
Dim colContent As EMB.BLL.Table.Column.Content = New EMB.BLL.Table.Column.Content
If (j > table.ColumnList.Count - 1) Then
Exit For
End If
If (table.ColumnList.Count > 0) Then
colContent = table.ColumnList.Item(j).ContentList.Item(0)
End If
Dim columnwidth As Integer = Convert.ToInt32(colContent.CColumnWidth)
columnwidth = IIf(columnwidth = 0, 100, columnwidth)
gridPanel.LabelStyle = String.Format("background: {0} !important;", table.ColumnList.Item(j).HBackColor)
tableStore.AddField(New Ext.Net.RecordField(item.ColumnName))
Dim backColor As String = colContent.CBackColor
gridPanel.ColumnModel.Columns.Add(New Ext.Net.Column With {.DataIndex = item.ColumnName, .Css = String.Format("background: {0} !important;", backColor), .Header = item.ColumnName, .Width = columnwidth, .Align = Ext.Net.Alignment.Left})
comboBox.Items.Add(New Ext.Net.ListItem With {.Text = item.ColumnName})
Next
comboBox.SelectedIndex = 0
comboBox.FireEvent("change", comboBox.SelectedItem.Text)
comboBox.GetStore.DataBind()
Catch ex As Exception
Dim exp As Exception = ex
End Try
End If
searchButton.Icon = Ext.Net.Icon.Magnifier
searchButton.Text = "Search"
searchButton.ID = widget.WidgetId + "search_btn"
searchButton.Listeners.Click.Handler = "Ext.net.DirectMethods.FilterTable('" + gridPanel.ClientID + "')"
textField.Listeners.Change.Handler = "Ext.net.DirectMethods.TextTable(this.getValue())"
'comboBox.Listeners.Select.Handler = "Ext.net.DirectMethods.ComboTable(this.getValue())"
comboBox.Listeners.Change.Handler = "Ext.net.DirectMethods.ComboTable(this.getValue())"
toExcelButton.Icon = Ext.Net.Icon.PageExcel
toExcelButton.Text = "To Csv"
toExcelButton.Listeners.Click.Handler = "#{" + gridPanel.ID + "}.submitData(false);"
toolBar.Items.Add(New Ext.Net.Label With {.Text = "Choose Column:"})
toolBar.Items.Add(comboBox)
toolBar.Items.Add(New Ext.Net.ToolbarSeparator)
toolBar.Items.Add(textField)
toolBar.Items.Add(searchButton)
toolBar.Items.Add(New Ext.Net.ToolbarFill)
toolBar.Items.Add(toExcelButton)
gridPanel.Listeners.CellClick.Fn = "cellClick"
gridPanel.TopBar.Add(toolBar)
gridPanel.BottomBar.Add(New Ext.Net.PagingToolbar With {.PageSize = 150})
'gridPanel.DataBind()
'gridPanel.doLayout
'gridPanel.Reconfigure()
Return gridPanel
End Function
当我调试生成的源代码时,我得到了这个,
new Ext.net.Viewport({
id: "ctl05",
renderTo: "form1",
items: [{
id: "selectedPageId",
xtype: "hidden"
}, {
id: "currentPageId",
xtype: "hidden"
}, {
id: "pnlContent",
cls: "PanelTitle",
autoScroll: true,
region: "center",
items: [{
TBL20061217433494C8J_ClientInit
}, {
TBL20061217433494C8J_ClientInit
}],
layout: "absolute",
tbar: {
id: "contBar",
xtype: "toolbar",
ctCls: "tbr",
autoScroll: true,
autoHeight: true,
layout: "menu"
},
title: "Page Name : tsttest-Copy"
}],
layout: "border"
});