【问题标题】:ASP.net Dynamic GridViews with Hyperlinks带有超链接的 ASP.net 动态 GridView
【发布时间】:2012-05-28 14:45:05
【问题描述】:

我有一个包含学生的数据库,以及基于他们的每周数据。我想创建一个网格视图,其中包含一组动态扩展的列和行,其中行是第 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() 包含超链接的表(当然以 URLParameters 的形式到 aspx 页面)。

【问题讨论】:

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


    【解决方案1】:

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

    我尝试添加标签,但由于 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 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;
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-14
      • 2016-03-15
      • 2011-12-05
      • 1970-01-01
      • 1970-01-01
      • 2012-10-28
      • 1970-01-01
      相关资源
      最近更新 更多