【问题标题】:How to add header columns based on data fetch from the database in gridview如何在gridview中根据从数据库中获取的数据添加标题列
【发布时间】:2014-03-10 07:27:05
【问题描述】:

我有一个GridView 并希望根据一些 SQL 查询动态地制作标题...

select question from quiz where quizid is 123.

此查询将根据quizid 返回* 的问题数。

如何使用从数据库中选择的数据创建标题?

【问题讨论】:

  • 您是在问,如何根据一个查询添加列标题,该查询是唯一的,并且不影响整个 GridView 的主要数据源?如果是,那也是我的问题。创建数据表并将其绑定到 gridview 会擦除最初从主数据源检索到的数据。

标签: c# asp.net gridview sql-server-2012


【解决方案1】:

您可以使用DataTable 来帮助解决此问题。

我不知道您使用哪些技术进行数据库管理,但我使用了LinQ to SQL。以下是我的示例:

DataClassesDataContext db = new DataClassesDataContext();

protected DataTable GetDataSource() 
{
    DataTable dt = new DataTable();

    var questions = db.ExecuteQuery<string>("select question from quiz where quizid is 123").ToList();

    // Header implementation
    int count = 0;
    foreach (var question in questions)
    {
        DataColumn dc = new DataColumn(question);
        dt.Columns.Add(dc);
        count++;
    }

    // Rows implementation here
    DataRow row = dt.NewRow();
    ...
    dt.Rows.Add(row);

    return dt;
}


protected void Page_Load(object sender, EventArgs e)
{
    GridView1.DataSource = GetDataSource();
    GridView1.DataBind();
}

这是我的 aspx 代码:

<asp:GridView ID="GridView1" runat="server"></asp:GridView>

【讨论】:

  • 嗨...您能否详细说明一下简单的 mssql 服务器...我没有关于 linq 的信息
  • 关于linq,可以在这里学习msdn.microsoft.com/en-us/library/bb384470.aspx
  • 要填充行,您必须创建新查询,如“问题”变量定义,然后循环绑定数据并将 DataRows 添加到 DataTable。如果你想要soe样本,请给我相关的数据库表结构。
  • 我能有你的邮件ID吗,我会把表格结构邮寄给你!!!我的一个是 garg.abhisar@gmail.com
  • 是的,我给你发了我的电子邮件地址:)
【解决方案2】:

我建议您在 RowDataBound 事件上动态添加 HeaderText。 您可以尝试类似

protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{    
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
       GridView.Columns[0].HeaderText = "New Header text for First Column";
    }
}

您可以在属性>>GridView 控件的事件中找到RowDataBound。并且RowDataBound 在绑定GridView 的每一行时触发。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 2013-09-12
    • 1970-01-01
    • 2019-12-03
    • 2011-08-23
    相关资源
    最近更新 更多