我有一个GridView
,并希望根据某些SQL查询动态生成标题,如...
select question from quiz where quizid is 123.
此查询将根据*
返回quizid
个问题。
如何使用从数据库中选择的数据创建标题?
答案 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>