GridView数据绑定
现有一页面A.aspx(其中,A.aspx中有一个GridView来存储B返回的信息。),在单击“新增”按钮时,弹出一模式窗口B.aspx。将B窗口中输入的数据存储于一个类对象information中并用Session["info"]传递。当存储成功后,将Session["info"]中的属性值取出存储于A中的GridView中。
问题是:
1、如何将信息显示在GridView中。
2、在A第一次打开时如何将GridView中的标题显示出来。
各位帮帮忙啊,急~~~
附A.aspx中GridView代码如下
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"
ForeColor="#333333" GridLines="None" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing"
OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit="GridView1_RowCancelingEdit">
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:BoundField DataField="id" HeaderText="编号" ReadOnly="True" />
<asp:BoundField DataField="program" HeaderText="施工项目" ReadOnly="True" />
<asp:BoundField DataField="workTime" HeaderText="施工日期" ReadOnly="True" />
<asp:BoundField DataField="workPlace" HeaderText="施工地点" ReadOnly="True" />
<asp:CommandField HeaderText="修改" ShowEditButton="True" />
<asp:CommandField HeaderText="删除" ShowDeleteButton="True" />
</Columns>
<RowStyle ForeColor="#000066" />
<SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
</asp:GridView>
在这里,我做了一个简单的例子,我的第一行代码相当于你从session中取出值,然后转换成information
类,所以你把它保存在List泛型集合中再绑定,应该就可以了,另外你设置ShowHeaderWhenEmpty="True"
就可以在没有记录时显示GridView中定义的表头 ,希望可以解决你的问题。。。
[解决办法]
后台显示表头:
public static void GridViewDataBind(GridView gridview, DataTable table)
{
//记录为空重新构造Gridview
if (table.Rows.Count == 0)
{
try
{
table = table.Clone();
table.Rows.Add(table.NewRow());
gridview.DataSource = table;
gridview.DataBind();
int columnCount = table.Columns.Count;
gridview.Rows[0].Cells.Clear();
gridview.Rows[0].Cells.Add(new TableCell());
gridview.Rows[0].Cells[0].ColumnSpan = columnCount;
gridview.Rows[0].Cells[0].Text = "No relevant records";
gridview.Rows[0].Cells[0].Style.Add("text-align", "center");
}
catch { DB.Alert("a"); }
}
else
{
//数据不为空直接绑定
gridview.DataSource = table;
gridview.DataBind();
}
//重新绑定取消选择
gridview.SelectedIndex = -1;
}
[解决办法]
if (dsDept.Tables[2].Rows.Count == 0)
{
dsDept.Tables[2].Rows.Add(dsDept.Tables[2].NewRow());
this.GvData.DataSource = dsDept.Tables[2];
this.GvData.DataBind();
int columnCount = this.GvData.Rows[0].Cells.Count;
this.GvData.Rows[0].Cells.Clear();
this.GvData.Rows[0].Cells.Add(new TableCell());
this.GvData.Rows[0].Cells[0].ColumnSpan = columnCount;
this.GvData.Rows[0].Cells[0].Text = "没有记录...";
}这个是没有记录让你显示表头的