0

私は学生のデータベースと、学生に基づく週ごとの数字を持っています。列と行のセットが動的に拡張されるグリッドビューを作成したいと思います。これにより、行は週 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() する方法がわかりませんでした (もちろん、aspx ページへの URLParameters の形式で)。

4

1 に答える 1

0

OK、先に進んで 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;

これを回避する最善の方法は何でしょうか?

于 2012-05-30T14:54:29.540 に答える