先看上代码
<body>
<ext:ResourceManager ID="ResourceManager1" runat="server" DirectMethodNamespace="X"
IDMode="Explicit" InitScriptMode="Linked" />
<form id="form1" runat="server">
<ext:Viewport runat="server" ID="vwpLayout" Layout="fit">
<Items>
<ext:GridPanel runat="server" ID="grdMain" Layout="fit" Border="false" AutoScroll="true" AutoHeight="false">
<TopBar>
<ext:Toolbar runat="server">
<Items>
<ext:Button runat="server" ID="btnAdd" IconCls="add-css" Text="新 增">
</ext:Button>
<ext:Button runat="server" ID="btnSearch" IconCls="search-css" Text="查 询">
</ext:Button>
<ext:Button runat="server" ID="btnBatchDelete" IconCls="remove-css" Text="批量删除">
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<SelectionModel>
<ext:CheckboxSelectionModel runat="server" SingleSelect="false" Sortable="false">
</ext:CheckboxSelectionModel>
</SelectionModel>
<LoadMask Msg="正在载入……" ShowMask="true" />
<ColumnModel DefaultSortable="true" runat="server" ID="colmMain">
<Columns>
<ext:RowNumbererColumn Align="Right" Resizable="false">
</ext:RowNumbererColumn>
<ext:NumberColumn Align="Left" DataIndex="FDegreeCode" Editable="false" Header="编 码"
Format="0">
</ext:NumberColumn>
<ext:Column Align="Left" DataIndex="FDegreeName" Editable="false" Header="名 称">
</ext:Column>
</Columns>
</ColumnModel>
<Store>
<ext:Store runat="server" ID="storeMain">
<Reader>
<ext:JsonReader IDProperty="FDegreeCode">
<Fields>
<ext:RecordField Name="FDegreeCode" Type="Int">
</ext:RecordField>
<ext:RecordField Name="FDegreeName">
</ext:RecordField>
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
</ext:GridPanel>
</Items>
<ext:ResourceManager ID="ResourceManager1" runat="server" DirectMethodNamespace="X"
IDMode="Explicit" InitScriptMode="Linked" />
<form id="form1" runat="server">
<ext:Viewport runat="server" ID="vwpLayout" Layout="fit">
<Items>
<ext:GridPanel runat="server" ID="grdMain" Layout="fit" Border="false" AutoScroll="true" AutoHeight="false">
<TopBar>
<ext:Toolbar runat="server">
<Items>
<ext:Button runat="server" ID="btnAdd" IconCls="add-css" Text="新 增">
</ext:Button>
<ext:Button runat="server" ID="btnSearch" IconCls="search-css" Text="查 询">
</ext:Button>
<ext:Button runat="server" ID="btnBatchDelete" IconCls="remove-css" Text="批量删除">
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<SelectionModel>
<ext:CheckboxSelectionModel runat="server" SingleSelect="false" Sortable="false">
</ext:CheckboxSelectionModel>
</SelectionModel>
<LoadMask Msg="正在载入……" ShowMask="true" />
<ColumnModel DefaultSortable="true" runat="server" ID="colmMain">
<Columns>
<ext:RowNumbererColumn Align="Right" Resizable="false">
</ext:RowNumbererColumn>
<ext:NumberColumn Align="Left" DataIndex="FDegreeCode" Editable="false" Header="编 码"
Format="0">
</ext:NumberColumn>
<ext:Column Align="Left" DataIndex="FDegreeName" Editable="false" Header="名 称">
</ext:Column>
</Columns>
</ColumnModel>
<Store>
<ext:Store runat="server" ID="storeMain">
<Reader>
<ext:JsonReader IDProperty="FDegreeCode">
<Fields>
<ext:RecordField Name="FDegreeCode" Type="Int">
</ext:RecordField>
<ext:RecordField Name="FDegreeName">
</ext:RecordField>
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
</ext:GridPanel>
</Items>
<Listeners>
<AfterLayout Handler="#{grdMain}.setHeight(#{vwpLayout}.getHeight());" />
</Listeners>
</ext:Viewport></form></body>
请注意文中红色加粗部分
主要原理为在GridPanel 对象的父容器中添加AfterLayout监听事件,并在监听事件中重新设置GridPanel高度;
GridPanel 的AutoHeight属性不能为true,否则代码将无效。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构