1

私は初心者で、リンクを追加するのに苦労しています。動的に追加されたテーブルにimgのように表示されます。

 string search = Search.Text;
 IMyData members = new MyData();
 DataTable dt = new DataTable();

 dt = members.Search(search);

 Table t = new Table();
 t.ID = "tblTable";
 TableRow row = null;


 for (int i = 0; i < dt.Rows.Count; i++)
 {
    HyperLink link = new HyperLink();
    row = new TableRow();
    for (int j = 0; j < dt.Columns.Count; j++)
    {
       TableCell cell = new TableCell();
       if (j == dt.Columns.Count - 1)     //This last field may hava a number
       {
          if (Convert.ToInt32(dt.Rows[i][j].ToString()) > 0)
          {
             link.ID = "link" + i + "_" + j;
             link.NavigateUrl = "members.aspx?showLease=" + dt.Rows[i][j].ToString();
             link.ImageUrl = "img/document.png";
             Page.Controls.Add(link);      // How to put this in a cell, not on page 
          }
          else
          { 
             cell.Text = dt.Rows[i][j].ToString();
          }
        }
        row.Cells.Add(cell);
      }
      t.Rows.Add(row);
    }
    pnlTable.Controls.Add(t);

ページではなくセルにハイパーリンクを配置するにはどうすればよいですか?

ありがとう

4

2 に答える 2

0

以下を参照してください。Page.Controls.Add(link) を cell.Controls.Add(link) に変更し、Hyperlink 宣言をセル ループに移動しました。それ以外の場合は、最後のセルにのみ追加されます。しかし、あなたのコードを見ると、 j == dt.Columns.Count - 1 のため、最後のセルにのみリンクまたはテキストがあるようです

for (int i = 0; i < dt.Rows.Count; i++) {
    row = new TableRow();
    for (int j = 0; j < dt.Columns.Count; j++)
    {
       HyperLink link = new HyperLink();
       TableCell cell = new TableCell();
       if (j == dt.Columns.Count - 1)     //This last field may hava a number
       {
          if (Convert.ToInt32(dt.Rows[i][j].ToString()) > 0)
          {
             link.ID = "link" + i + "_" + j;
             link.NavigateUrl = "members.aspx?showLease=" + dt.Rows[i][j].ToString();
             link.ImageUrl = "img/document.png";
             cell.Controls.Add(link);      // How to put this in a cell, not on page 
          }
          else
          { 
             cell.Text = dt.Rows[i][j].ToString();
          }
       }
       row.Cells.Add(cell);
     }
     t.Rows.Add(row);
}
于 2013-03-18T16:23:52.420 に答える
0

Page で行っているように、TableCell にコントロールを追加できます。このようにコードを変更します

Page.Controls.Add(link);//Will add control in page
cell.Controls.Add(link);//Will add control in table cell
于 2013-03-18T16:08:57.953 に答える