DataGrid分页格式控制问题

calen 2005-12-31 03:29:59
在我的DataGrid中,以20条记录为1页,为何不会按照固定的行高进行排列?而是按照平均行高进行排列?


我希望得到的格式是以固定的行高,例如25px,整个的DataGrid的高度固定不变,例如560px

...全文
188 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnming 2006-01-14
  • 打赏
  • 举报
回复
asp中的格式确实不好控制

仿制一个吧
cxy89173 2006-01-03
  • 打赏
  • 举报
回复
看出来了吗?
calen 2006-01-03
  • 打赏
  • 举报
回复
上面的aspx中包含有两个的DataGrid,和一个的componentart的TreeView
calen 2006-01-03
  • 打赏
  • 举报
回复
<%@ Register TagPrefix="componentart" Namespace="ComponentArt.Web.UI" Assembly="ComponentArt.Web.UI" %>
<%@ Page language="c#" Codebehind="WebForm3.aspx.cs" AutoEventWireup="false" Inherits="VideoMonitor.Permission.WebForm3" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>OrganizeUnit</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<script language="JavaScript" src="../JavaScrips/CheckBox.js"></script>
<script language="javascript">
function nodeSelect(node)
{
document.all.item("OrgID").value=node.ID;
}
</script>
</HEAD>
<body MS_POSITIONING="GridLayout" bottomMargin="0" leftMargin="15" topMargin="10" rightMargin="0">
<form id="Form2" method="post" runat="server">
<table>
<tr>
<td>
<asp:datagrid id="unitGrid" runat="server" PageSize="20" Font-Size="10pt" GridLines="None" BorderWidth="2px"
BorderColor="Black" Height="480" Width="300" BackColor="Transparent" BorderStyle="Solid" AutoGenerateColumns="False"
AllowPaging="True" CellPadding="0" ShowHeader="True">
<AlternatingItemStyle BorderStyle="None"></AlternatingItemStyle>
<HeaderStyle BackColor="Gainsboro"></HeaderStyle>
<ItemStyle VerticalAlign="Top"></ItemStyle>
<Columns>
<asp:TemplateColumn HeaderText="">
<HeaderStyle VerticalAlign="Bottom" Height="5"></HeaderStyle>
<ItemStyle Height="20px" Width="10px" HorizontalAlign="Right" VerticalAlign="Middle"></ItemStyle>
<HeaderTemplate>
<input type="checkbox" name="allbox" onclick="CA();">
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="Chk" Checked="False" onclick="javascript:CCA(this);" Runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemStyle Width="15px" HorizontalAlign="Center" VerticalAlign="Middle"></ItemStyle>
<HeaderTemplate>
<font face="Webdings" color="black" size="4">a</font>
</HeaderTemplate>
<ItemTemplate>
<asp:Image ImageUrl="images/TreeCameraNormal.gif" Runat="server" ID="Image1"></asp:Image>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="CAPTION" HeaderText="(全选择/全解除)">
<ItemStyle Width="170px" VerticalAlign="Middle"></ItemStyle>
</asp:BoundColumn>
</Columns>
<PagerStyle VerticalAlign="Bottom" HorizontalAlign="Right" Font-Size="12pt" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
</td>
<td>
<asp:datagrid id="dgRole" runat="server" PageSize="20" Font-Size="10pt" GridLines="None" BorderWidth="2px"
BorderColor="Black" Height="480" Width="300" BackColor="Transparent" BorderStyle="Solid" AutoGenerateColumns="False"
AllowPaging="True" CellPadding="0" ShowHeader="True">
<AlternatingItemStyle BorderStyle="None"></AlternatingItemStyle>
<HeaderStyle BackColor="Gainsboro"></HeaderStyle>
<ItemStyle VerticalAlign="Top"></ItemStyle>
<Columns>
<asp:TemplateColumn HeaderText="">
<HeaderStyle VerticalAlign="Bottom" Height="5"></HeaderStyle>
<ItemStyle Height="20px" Width="10px" HorizontalAlign="Right" VerticalAlign="Middle"></ItemStyle>
<HeaderTemplate>
<input type="checkbox" name="allbox" onclick="CA();">
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="Checkbox1" Checked="False" onclick="javascript:CCA(this);" Runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemStyle Width="15px" HorizontalAlign="Center" VerticalAlign="Middle"></ItemStyle>
<HeaderTemplate>
<font face="Webdings" color="black" size="4">a</font>
</HeaderTemplate>
<ItemTemplate>
<asp:Image ImageUrl="images/TreeCameraNormal.gif" Runat="server" ID="Image2"></asp:Image>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="RoleName" HeaderText="(全选择/全解除)">
<ItemStyle Width="170px" VerticalAlign="Middle"></ItemStyle>
</asp:BoundColumn>
</Columns>
<PagerStyle VerticalAlign="Bottom" HorizontalAlign="Right" Font-Size="12pt" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
</td>
<td>
<COMPONENTART:TREEVIEW id="TVRole" runat="server" Height="500px" Width="400px" ExpandCollapseInFront="True"
CssClass="TreeView" AutoPostBackOnNodeMove="True" AutoPostBackOnSelect="True" AutoPostBackOnNodeRename="True"
NodeCssClass="TreeNode" NodeRowCssClass="TreeNodeRow" HoverNodeRowCssClass="HoverTreeNodeRow" SelectedNodeRowCssClass="SelectedTreeNodeRow"
DefaultImageWidth="16" DefaultImageHeight="16" ExpandCollapseImageWidth="16" ExpandCollapseImageHeight="16"
NodeIndent="20" LeafNodeImageUrl="../Images/TreeView/leafnode.gif" ParentNodeImageUrl="../Images/TreeView/folder.gif"
ExpandImageUrl="../Images/TreeView/col.gif" CollapseImageUrl="../Images/TreeView/exp.gif" EnableViewState="False"
ClientTarget="Auto" ClientObjectId="TreeView1"></COMPONENTART:TREEVIEW></td>
</TD>
</tr>
</table>
</form>
</body>
</HTML>
calen 2006-01-03
  • 打赏
  • 举报
回复
<table style="height:560px"><tr><td style="height:20px">asd fasd></td></tr>
<tr><td style="height:40px">2222222222222</td></tr></table>

这种方式还是平均分配

我从别人的程序中反编译了一个,倒是会达到我的效果。

待会儿贴一个出来看看,我看不出其中的区别
calen 2006-01-02
  • 打赏
  • 举报
回复
这种效果我有看到过,只是我仿制这种效果却又无法实现。

目前我这里形成的效果有两种,一种是平均占用了整个的DataGrid
另外一种是改变了DataGrid的高度,缩减为行高X行数

这两种效果都会导致整个外观布局的变化。
calen 2006-01-02
  • 打赏
  • 举报
回复
我的意思是当我的DataGrid高度为560px,同时只有一条记录,外加一个标题栏,共有两行

目前我的DataGrid的效果是行高560/2=280px,也就是按行平均占用了整个的DataGrid

我希的是按照我们指定的行高,例如只有两行,就占用从顶部算起的50px的高度,之后的是空白,最后一行写页码,同时整个的DataGrid高度为560px
  • 打赏
  • 举报
回复
首先不太看得明白你说的“平均行高”是什么意思?ItemStyle是针对所有行的,当然所有行都有这个样式。但是如果内容大于这个高度,就会“撑开”高度,非常正确的做法。

除非你是写的仅简单、静态地显示一下死板内容的页面。否则,对于动态页面,你应该自动排版(使用table),不要依赖于绝对定位。你可以看个例子:http://cmda618.gnway.net/w2cms (服务器比较慢,耐心等待)
jiechifeiniao 2006-01-02
  • 打赏
  • 举报
回复
使用div 看看呢?
calen 2006-01-02
  • 打赏
  • 举报
回复
DataGrid中的ItemStyle没有Add方法

我使用这种方式写入
this.dgRole.ItemStyle.Height = System.Web.UI.WebControls.Unit.Pixel(25);
this.dgRole.Style.Add("height","560px");

还是不行,还是平均分配行高

麻烦给我点例子
calen 2006-01-02
  • 打赏
  • 举报
回复
试试看
  • 打赏
  • 举报
回复
<table style="height:560px"><tr><td style="height:20px">asd fasd></td></tr>
<tr><td style="height:40px">2222222222222</td></tr></table>

我给你个建议:放上一段美妙的音乐,换一种心境。


很多东西,如果从原理上去理解,事办功倍,至少不会花上几十甚至上百倍的时间去钻牛角尖。腾出时间,自己动手解决问题。例如自己写一个table,里边第一行嵌入数据datagrid并向上对其,第二行写你的脚注并向下对齐。
  • 打赏
  • 举报
回复
试一下这个:

<table style="height:560px"><tr><td>asd fasd></td></tr>
<tr><td>2222222222222</td></tr></table>

你就知道你的问题在哪里。
  • 打赏
  • 举报
回复
DB.ItemStyle.Add("height",25px")
DB.Style.Add(height","560px")

不过要注意html元素的height,并不一定限制元素的行高。例如在内容非常高或者非常宽的时候,不自动使用滚动条的元素(滚动条让阅读变得困难)就是会放弃矛盾的height或者width样式而“撑开”大小。因此,布局是相对的,动态的,通常用table来限制内容的相对位置并且对随着内容的多少自动排版的。在写一个需要保持布局的aspx页面的时候,第一件事就是要确定页面的pageLayout属性为flowLayout。

因此,我记得在过去有过所谓“web2.0”讨论中说取消相对定位一律用绝对定位(position:absolute),这是很荒唐的,这样的页面只会在布局上被捆绑。
CSharpEx 2006-01-01
  • 打赏
  • 举报
回复
up
calen 2005-12-31
  • 打赏
  • 举报
回复
帮忙定义一下,对CSS不熟悉

beiouwolf 2005-12-31
  • 打赏
  • 举报
回复
把模板详细定义
或者用CSS来控制嘛
calen 2005-12-31
  • 打赏
  • 举报
回复
up

62,065

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧