如何调整gridview宽度
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何调整gridview宽度相关的知识,希望对你有一定的参考价值。
<tr width="100%"> <td class="label" width="100%"> <asp:Label ID="lblCount" runat="server" Text="共有0条记录" SkinID="LabelCount"></asp:Label> <asp:GridView ID="grdvView" runat="server" width="100%" SkinID="GridView" DataKeyNames="UserID" AutoGenerateColumns="False" OnSelectedIndexChanged="grdvView_SelectedIndexChanged" > <Columns> <asp:CommandField ShowSelectButton="True" > <ItemStyle ForeColor="Red" Width="30px" /> </asp:CommandField> <asp:BoundField DataField="UserID" HeaderText="UserID" Visible="False" > <HeaderStyle HorizontalAlign="Center" /> </asp:BoundField> <asp:BoundField DataField="UserNo" HeaderText="用户编码"> <HeaderStyle HorizontalAlign="Center" /> </asp:BoundField> <asp:BoundField DataField="UserName" HeaderText="用户名称" > <HeaderStyle HorizontalAlign="Center" /> </asp:BoundField> <asp:BoundField DataField="UserDepart" HeaderText="所属部门"> <HeaderStyle HorizontalAlign="Center" /> </asp:BoundField> <asp:BoundField DataField="UserRole" HeaderText="所属角色" > <HeaderStyle HorizontalAlign="Center" /> </asp:BoundField> <asp:BoundField DataField="UserManage" HeaderText="管养单位"> <HeaderStyle HorizontalAlign="Center" /> </asp:BoundField> </Columns> </asp:GridView> </td> </tr> 可他宽度就是原始的拖拽时的宽度,怪了。请教下!
1、设置下RowHeadersWidth属性就可。
2、GridVew ,可以 试试GridView.Columns.[i].width。
3、点视图绑定数据源那有个编辑模板,那可设置。
4、在GridView1_RowDataBound中找到要调整宽度的控件,然后进行调整宽度(Style或者直接指定Width)。
参考技术A 你设置gridview宽度是100%( width="100%" ),所以他会自适应浏览器的宽度;你可以设一个固定的宽度 如width="720px"; 参考技术B 问题就出现在width="100%" 你应该确定一个固定像素的宽度 比如width="950px“或者width="750px”; 试试看就知道怎么回事了,width="100%“始终会铺满整个浏览器 参考技术C 在属性里可以设置的如何在初始化后调整 GridView 列的宽度?
【中文标题】如何在初始化后调整 GridView 列的宽度?【英文标题】:Howto resize the width of a GridView column after it has been initialized? 【发布时间】:2012-08-25 13:56:27 【问题描述】:更新问题:
在 WPF 中,我使用 GridView
(在 ListView
内)来显示 Textbox-Slider
对的列表。每对这样的对都恰好排列在单列的一个单元格中(每对使用DockPanel
)。
滑块具有最小宽度,因此它不会折叠,文本框不会折叠,它会在接收输入时动态调整大小。
问题是当文本框的宽度增加时,列宽并没有等效地改变。这会导致相应行中的滑块在右侧被视觉剪辑。结果,滑块的旋钮在移动到右端时消失在空隙中。
所以问题是:如果内容超过可用空间(在初始化时设置),我如何强制gridview的列宽动态调整?
只需忽略文本框和滑块之间的标签(没有它,行为不会改变)。
【问题讨论】:
如果你有复杂的代码,你应该做的第一件事就是提取你的问题区域并发布一个独立的例子来展示问题。也许你甚至在这个过程中解决了问题。 这不是标准行为。这表明您的容器(网格、堆栈面板、停靠面板)设置不正确。剥离那段代码,以便我们检查。 很难提取相关的代码,因为它嵌入在一个相当复杂的程序中。 你在几台不同的机器上测试过这个吗? "很难提取相关的代码" 然后尝试通过在停靠面板中简单复制这三个控件来重现它。工作的负担应该在提问者身上,而不是回答者身上。 【参考方案1】:一种方法是获取标签事件并将其添加到网格 (sizeChanged) 中,然后根据标签大小调整网格大小...
【讨论】:
【参考方案2】:某些容器可能会通过ClipToBounds
对其进行剪辑,或者根据您的背景颜色的实现方式,它们可能会从另一列覆盖。
【讨论】:
解压代码到一个干净的新项目后发现不是ClipToBounds
引起的。看看更新后的帖子。【参考方案3】:
Size containerSize=new Size(100, 100);
public Size CalculateSize(FrameworkElement visualBlock, Size containerSize)
visualBlock.Measure(containerSize);
return visualBlock.DesiredSize;
此代码获取框架元素的大小以在容器内进行渲染。之后,您可以以编程方式设置大小。 需要知道父母的大小才能正确工作。
【讨论】:
好吧,为了测量 FrameworkElement 的大小,我首先需要访问这个元素。问题是,元素(即滑块)被插入到 GridViewColumn 中。所以我必须从那里访问它们 - 有什么方法可以实现吗? 尝试使用来自***.com/questions/636383/wpf-ways-to-find-controls的示例以上是关于如何调整gridview宽度的主要内容,如果未能解决你的问题,请参考以下文章
Android GridView——如何以dp单位使用setColumnWidth()设置宽度
如何修复 DevExpress GridView 扩展的宽度,同时保持其列的宽度可调整大小