首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

GridView数据绑定,该如何处理

2013-11-08 
GridView数据绑定现有一页面A.aspx(其中,A.aspx中有一个GridView来存储B返回的信息。),在单击“新增”按钮时,

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 = "没有记录...";
        }这个是没有记录让你显示表头的

热点排行