具有超链接的ASP.net Dymanic GridViews

时间:2012-05-28 14:45:06

标签: asp.net sql-server gridview matrix dynamic-data

我有一个学生数据库,以及基于他们的每周数字。我想创建一个gridview,其中包含一组动态扩展的列和行,其中行是1,2周,...,n和列代表每个学生,反之亦然。

Reviews data table looks like this:
======================================
| Stu#  | Week# | Score    | Review# |
--------------------------------------
| 123   | 1     | A+       | 832     |
| 123   | 2     | C-       | 352     |
.       .       .          .         .
.       .       .          .         . 
.       .       .          .         .
| 321   | 12    | B        | 992     |
| 321   | 13    | A-       | 935     |
======================================

基本上,我想提出

的评论

在每个单元格中,我希望根据提交的评论提供每周数字,以及此评论的链接。很像:

 _____________________________
| Week | StudentA  | StudentB |
| No.  |   (123)   |  (321)   |
-------------------------------
|   1  |    A+     |   B-     |
|   2  |    ...    |   ...    |
.      .           .          . 
.      .           .          . 
.      .           .          . 
|  13  |     A+    |   B-     |
-------------------------------

我已经看了几个(一百个)同样的问题,但试图将某些东西放在一起却不是同样的问题,但到目前为止已经被愚弄了。 它几乎就像是一个excel电子表格,其中包含指向特定数据条目的链接。

我开始创建一个列表,在列表中,但这变得太混乱了。 然后我尝试使用DataTable,其中列和行是在开始时创建的,但不知道DataBind()包含超链接的表(当然是以URLParamaters到aspx页面的形式)。

如果有人对这种设置有任何经验,我很乐意,如果你能帮我一把。

1 个答案:

答案 0 :(得分:0)

好的,我已经开始动态生成DataTable并将其绑定到我的GridView,它对于纯文本结果非常好,但是我想为每个元素创建超链接(即A +)这样一个特定的标记可以阅读,评论等。

我尝试添加标签,但是由于ASP.net的代码注入保护,它并没有完全奏效。所以基本上我有:

 HyperLink thisScore = new HyperLink();
            thisScore.NavigateUrl=string.Format("<a href='studentMarks.aspx?groupID={0}&week={1}&studentID={2}'>{3}</a>", groupID, week, reader["student_ID"], reader[studentScoreLocation]);
            newRow[studentName] = thisScore;

随后尝试使用HyperLink对象(无效)

        HyperLink thisScore = new HyperLink();
        thisScore.NavigateUrl=string.Format("studentMarks.aspx?groupID={0}&week={1}&studentID={2}", groupID, week, reader["student_ID"]);
        thisScore.Text = reader[studentScoreLocation].ToString();
        newRow[studentName] = thisScore;

解决这个问题的最佳方式是什么?