关于asp.net中文本链接的问题
我在一个页面中给多个文本定义了超链接,每个文本均是具体内容的标题,我希望可以通过点击标题进到相应的内容页中。源页面中的aspx.cs文件中的代码如下:
td.Text = "<a href = 'ThemeContent.aspx?id = "+i+"'>"+ ds.Tables["list"].Rows[i][j].ToString() + "</a>";(这里td是我创建的单元格,ds为dataset,i代表标题的编号,根据这个编号可以到数据库提取相应的内容)
点击不同的标题,进入到内容页(即目标页面),我希望可以提取到标题的链接中的参数“id”,根据id来确定内容页的具体内容。我在目标页面的aspx.cs中的代码是:
int k = Convert.ToInt32(Request.QueryString["id"]);
但是这样出现了问题:
1.我点击标题后,页面没有出现内容,这是为什么呢?
2.不论我点击那个标题,内容页中k的值始终为0,这是为什么呢?百思不得其解啊!
3.目标页的地址中读了几个字符“%20%20”
我目标页中的详细代码如下:
protected void Page_Load(object sender, EventArgs e)
{
int k = Convert.ToInt32(Request.QueryString["id"]);
conn = ConnectAccess.OC();
conn.Open();
cmd = new OleDbCommand("select title,ques_content from question", conn);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds,"Theme"); //将提取出的数据库内容放在dataset中
//创建表格
Table tb = new Table();
TableRow tr = new TableRow();
tb.Controls.Add(tr);
TableCell td = new TableCell();
td.Text = ds.Tables["Theme"].Rows[k][0].ToString();
tr = new TableRow();
tb.Controls.Add(tr);
td = new TableCell();
td.Text = ds.Tables["Theme"].Rows[k][1].ToString();
Page.Form.Controls.Add(tb);
}
}
}
请各位高手指点迷津,感激不尽!!!
------解决方案--------------------程序运行后看下你页面的源码,看下这个<a>的href是否正确
------解决方案--------------------td.Text = "<a href = 'ThemeContent.aspx?id = "+i+"'>"+ ds.Tables["list"].Rows[i][j].ToString() + "</a>";
调试下你的i是否有值啊
------解决方案--------------------td.Text = "<a href = 'ThemeContent.aspx?id = "+i+"'>"+ ds.Tables["list"].Rows[i][j].ToString() + "</a>";
改成
td.Text = "<a href = ThemeContent.aspx?id ='"+i+"'>"+ ds.Tables["list"].Rows[i][j].ToString() + "</a>";
------解决方案--------------------
td.Text = "<a href = 'ThemeContent.aspx?id = "+i+"'>"+ ds.Tables["list"].Rows[i][j].ToString() + "</a>";
改成
td.Text = "<a href = \"ThemeContent.aspx?id = "+i+"\">"+ ds.Tables["list"].Rows[i][j].ToString() + "</a>";
试一下,我本地没测试,不过原先这样写过。
------解决方案--------------------后台输出页面遇到HTML需要显示的""需要加\隔开下的。