将数据表绑定到方法中的网格视图

时间:2014-11-28 07:01:55

标签: c# asp.net gridview data-binding datatable

我有一个网格视图如下:

<div>
    <asp:Label ID="lblModifiedFilesMessage" runat="server" />
       <asp:GridView ID="gvPopUpModifiedFiles" AutoGenerateColumns="false" CellPadding="0"runat="server">
            <Columns>
            <asp:TemplateField>
            <ItemTemplate>
            <asp:CheckBox ID="chkFileSelect" runat="server" />
            </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField HeaderText="FileName" DataField="FileName" />
            </Columns>
            <HeaderStyle BackColor="#df5015" Font-Bold="true" ForeColor="White" />
            </asp:GridView>
            <asp:Button ID="btnOk" Text="OK" runat="server"
            Font-Bold="true" onclick="btnOk_Click" /><br />
    </div>

我正在尝试在方法中绑定此网格视图的数据,如下所示:

private void PopUpModifiedFiles(List<ProjectFile> ModifiedFiles)
{
    this.lblModifiedFilesMessage.Text = "Below files are modified in the Source Server and will be archived with latest version. Please select any files if they are to be retained with older version in archive";
    DataTable dtModifiedFiles = new DataTable();
    dtModifiedFiles.Columns.Add("FileName");
    foreach (ProjectFile modifiedFile in ModifiedFiles)
    {
        DataRow drFileName = dtModifiedFiles.NewRow();
        drFileName["FileName"] = modifiedFile.FileName;
        dtModifiedFiles.Rows.Add(drFileName);
    }
    gvPopUpModifiedFiles.DataSource = dtModifiedFiles;
    gvPopUpModifiedFiles.DataBind();

}

这里将数据表分配给网格视图它显示错误,因为它不包含gvPopUpModifiedFiles的定义。我是否需要为此gvPopUpModifiedFiles编写任何方法?

如何分配值?

1 个答案:

答案 0 :(得分:0)

对于绑定网格,您必须在属性 DataSource 上设置DataTable并调用方法DataBind

gvPopUpModifiedFiles.DataSource = dtModifiedFiles;
gvPopUpModifiedFiles.DataBind();

问题可能是指令页面上的属性,属性CodeBehind Inherits。你可以用这种方式控制

文件aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="WebApplication4.Index" %>

文件CS:

namespace WebApplication4
{
    public partial class Index : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }
}

CodeBehind中的文件Index.aspx.cs必须存在且Inherits属性必须是CS中的fullname类

相关问题