GridView的行数显示问题
GridView显示12行, 数据表了有7行内容。页面显示7行。我想总体显示12行的高度不变。余下的5行空白也行。
不分页。。。 --------------------编程问答-------------------- datatable中自己添加空行 --------------------编程问答--------------------
数据表里的数据不是一成不变的。。。有可能增加一行数据,或减少一行数据。 --------------------编程问答-------------------- 12 - ( 数据行数 %12 ) 是你需要添加的行。 --------------------编程问答-------------------- 看不明白,能否说明白点 --------------------编程问答-------------------- 貌似不行吧 --------------------编程问答-------------------- 应该是自动添加的吧。 如果加一行难道就不自动了? --------------------编程问答-------------------- 首先提取数据库中的总条数。
再使用这个公式:
12 - ( 总条数 %12 ) 是你需要添加的行。
在GridView中添加 多余的空白行。 --------------------编程问答-------------------- [Quote=引用 4 楼 的回复:]
引用 3 楼 的回复:
12 - ( 数据行数 %12 ) 是你需要添加的行。
++
程序员都是这样累死的,加班也是这样出来的。
--------------------编程问答-------------------- 固定行数的GridView
<%@ Page Language="C#" Debug="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
// 设置每页显示的行数
int TotalRowCount = 12;
protected void Page_Load(object sender, EventArgs e)
{
String sort = "DESC";
if (!Page.IsPostBack)
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
dt.Columns.Add(new System.Data.DataColumn("UserId", typeof(System.Int32)));
dt.Columns.Add(new System.Data.DataColumn("Name", typeof(System.String)));
dt.PrimaryKey = new System.Data.DataColumn[] { dt.Columns["UserId"]};
dt.Columns[0].AutoIncrement = true;
for (int i = 0; i < 8; i++)
{
dr = dt.NewRow();
dr[0] = i.ToString();
dr[1] = "【孟子E章】" + i.ToString();
dt.Rows.Add(dr);
}
System.Data.DataView dv = dt.DefaultView;
dv.Sort = "UserId " + sort; //排序
int addCount = TotalRowCount - dv.Table.Rows.Count;
if (sort == "ASC")
{
int MaxID = Convert.ToInt32(dv.Table.Compute("Max(UserId)",""));
for (int i = 1; i <= addCount; i++)
{
dv.Table.Rows.Add(new Object[] { MaxID + i, "" });
}
}
else
{
for (int i = 1; i <= addCount; i++)
{
dv.Table.Rows.Add(new Object[] { -1 * i, "" });
}
}
GridView1.DataSource = dt;
GridView1.DataBind();
GridView2.DataSource = dt;
GridView2.DataBind();
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>自动填充固定行数的 GridView</title>
</head>
<body>
<form id="form1" runat="server">
<h3>显示1</h3>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
<h3>显示2</h3>
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="Name" />
</Columns>
</asp:GridView>
</form>
</body>
</html>
无主键的方法
<%@ Page Language="C#" Debug="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
// 设置每页显示的行数
int TotalRowCount = 12;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
dt.Columns.Add(new System.Data.DataColumn("Id", typeof(System.Int32)));
dt.Columns.Add(new System.Data.DataColumn("Name", typeof(System.String)));
for (int i = 0; i < 8; i++)
{
dr = dt.NewRow();
dr[0] = i.ToString();
dr[1] = "【孟子E章】" + i.ToString();
dt.Rows.Add(dr);
}
System.Data.DataView dv = dt.DefaultView;
dv.Sort = "Id DESC"; //排序
int addCount = TotalRowCount - dv.Table.Rows.Count;
for (int i = 0; i < addCount; i++)
dv.Table.Rows.Add();
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>自动填充固定行数的 GridView</title>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</form>
</body>
</html> --------------------编程问答-------------------- BLL.QueryReport bll = new BLL.QueryReport();
DataSet myTable = bll.调用方法名();
//生成的合计
if(myTable.Rows.Count<12)
{
DataRow AcountRow = myTable.NewRow();
for(int count=0;count<12-myTable.Rows.Count;count++)
{
AcountRow[0] = "";
... ....
AcountRow[n] = "";
myTable.Rows.Add(AcountRow);
}
}
GridView1.DataSource = myTable;
GridView1.DataBind(); --------------------编程问答--------------------
哦。不小心有点小错误了,正确为:
BLL.QueryReport bll = new BLL.QueryReport();
DataSet myTable = bll.调用方法名();
if(myTable.Rows.Count<12)
{
for(int count=0;count<12-myTable.Rows.Count;count++)
{
DataRow AcountRow = myTable.NewRow();//放到循环里面
AcountRow[0] = "";//第一列为空
... ....
AcountRow[n] = ""; //第n列为空
myTable.Rows.Add(AcountRow);
}
}
GridView1.DataSource = myTable;
GridView1.DataBind();
--------------------编程问答--------------------
补充:.NET技术 , ASP.NET