动态向GridView插入空行
GridView是一个常用的控件,美中不足是它跟DataGrid一样,灵活性差了一些.
有时候要在绑定数据时每隔若干行插入一个空行,这样会好看些,不会让人感觉很挤.
当然也可以插入一些广告
今天研究了一下,发现还是可以实现的,只不过方法有点那个啥了,先看代码吧:
gv.Rows[e.Row.RowIndex - 1].Cells[e.Row.Cells.Count - 1].Text += "</td></tr><tr><td colspan=10> ";
当然上面代码完全可以写得更像样一些,比如:
GridViewRow tr = new GridViewRow(0, 0, DataControlRowType.EmptyDataRow, DataControlRowState.Normal);
TableCell cel = new TableCell();
cel.ColumnSpan = 10;
cel.Text = " ";
tr.Cells.Add(cel);
gv.Rows[e.Row.RowIndex - 1].Parent.Controls.Add(tr);
另外关键的一句是:
<asp:GridView ID="gv" runat="server" OnRowCreated="gv_RowCreated" AutoGenerateColumns="false">
请注意OnRowCreated="gv_RowCreated"
效果如下:
有时候要在绑定数据时每隔若干行插入一个空行,这样会好看些,不会让人感觉很挤.
当然也可以插入一些广告
今天研究了一下,发现还是可以实现的,只不过方法有点那个啥了,先看代码吧:
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
int index = 0;
//每一行创建时发生的事件
void gv_RowCreated(object sender, GridViewRowEventArgs e){
if (index > 0 && index % 5 == 1 && e.Row.RowIndex>0)
{
gv.Rows[e.Row.RowIndex - 1].Cells[e.Row.Cells.Count - 1].Text += "</td></tr><tr><td colspan=10> ";
}
index++;
}
void Page_load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("id");
dt.Columns.Add("name");
for (int i = 1; i <= 30; i++)
{
DataRow row = dt.NewRow();
row["id"] = i;
row["name"] = "name" + i;
dt.Rows.Add(row);
}
gv.DataSource = dt;
//绑定数据
gv.DataBind();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>给GridView添加一个空行</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="gv" runat="server" OnRowCreated="gv_RowCreated" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="id" HeaderText="id" />
<asp:BoundField DataField="name" HeaderText="name" />
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>
关键的一句是:<%@ Import Namespace="System.Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
int index = 0;
//每一行创建时发生的事件
void gv_RowCreated(object sender, GridViewRowEventArgs e){
if (index > 0 && index % 5 == 1 && e.Row.RowIndex>0)
{
gv.Rows[e.Row.RowIndex - 1].Cells[e.Row.Cells.Count - 1].Text += "</td></tr><tr><td colspan=10> ";
}
index++;
}
void Page_load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("id");
dt.Columns.Add("name");
for (int i = 1; i <= 30; i++)
{
DataRow row = dt.NewRow();
row["id"] = i;
row["name"] = "name" + i;
dt.Rows.Add(row);
}
gv.DataSource = dt;
//绑定数据
gv.DataBind();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>给GridView添加一个空行</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="gv" runat="server" OnRowCreated="gv_RowCreated" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="id" HeaderText="id" />
<asp:BoundField DataField="name" HeaderText="name" />
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>
gv.Rows[e.Row.RowIndex - 1].Cells[e.Row.Cells.Count - 1].Text += "</td></tr><tr><td colspan=10> ";
当然上面代码完全可以写得更像样一些,比如:
GridViewRow tr = new GridViewRow(0, 0, DataControlRowType.EmptyDataRow, DataControlRowState.Normal);
TableCell cel = new TableCell();
cel.ColumnSpan = 10;
cel.Text = " ";
tr.Cells.Add(cel);
gv.Rows[e.Row.RowIndex - 1].Parent.Controls.Add(tr);
另外关键的一句是:
<asp:GridView ID="gv" runat="server" OnRowCreated="gv_RowCreated" AutoGenerateColumns="false">
请注意OnRowCreated="gv_RowCreated"
效果如下:
| id | name | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 1 | name1 | ||||||||
| 2 | name2 | ||||||||
| 3 | name3 | ||||||||
| 4 | name4 | ||||||||
| 5 | name5 | ||||||||
| 6 | name6 | ||||||||
| 7 | name7 | ||||||||
| 8 | name8 | ||||||||
| 9 | name9 | ||||||||
| 10 | name10 | ||||||||
| 11 | name11 | ||||||||
| 12 | name12 | ||||||||
| 13 | name13 | ||||||||
| 14 | name14 | ||||||||
| 15 | name15 | ||||||||
| 16 | name16 | ||||||||
| 17 | name17 | ||||||||
| 18 | name18 | ||||||||
| 19 | name19 | ||||||||
| 20 | name20 | ||||||||
| 21 | name21 | ||||||||
| 22 | name22 | ||||||||
| 23 | name23 | ||||||||
| 24 | name24 | ||||||||
| 25 | name25 | ||||||||
| 26 | name26 | ||||||||
| 27 | name27 | ||||||||
| 28 | name28 | ||||||||
| 29 | name29 | ||||||||
| 30 | name30 | ||||||||

浙公网安备 33010602011771号