如何根据gridview中数据库中的数据提取添加标题列

时间:2014-03-10 07:27:06

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

我有一个GridView,并希望根据某些SQL查询动态生成标题,如...

select question from quiz where quizid is 123.

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

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

2 个答案:

答案 0 :(得分:0)

我建议您在HeaderText活动中动态添加RowDataBound。 你可以试试像

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

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

答案 1 :(得分:0)

您可以使用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>