很长一段时间,这个问题一直困扰着我。
首先要问的第一个问题是:这个功能的实现,到底是在SQL Server中还是在aspx中?
解决思路:
在现有的表中,增加一列“超级链接”,或者干脆在已有列中,比如“考核名”(cname)中,使数据自带超级链接。
现在可以回答第一个问题,和SQL Server有关,也和前台aspx文件有关,注意不是后台a文件。
通过查看后台文件querymystudent.a可知,选择下拉菜单时读取的表名为“score”。代码如下
{
string mysql;
mysql = "SELECT * FROM score WHERE tno='" + Session["uno"] + "'AND cno ='" + Dro + "' ORDER BY sno";
myds = mydb.ExecuteQuery(mysql, "score");
if ["score"].Rows.Count > 0)
{
GridView1.DataSource = myds.Tables["score"];
GridView1.DataBind();
}
else
Re("<script>alert('没有员工选择或提交该科目!')</script>");
}
所以,应在score这个表中增加列clink 列assessment 列tname
clink为考核表文件的真实链接;
assessment为显示到前台的文字,目的是隐藏真实链接;
增加tname列的目的是把考官的姓名带出来。
在querymy中增加这么一段:
<asp:TemplateField HeaderText="考核链接">
<ItemTemplate>
<a href="<%# Eval("clink")%>"><%# Eval("assessment")%></a>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
"<%# Eval("clink")%>"这段代码表示链接的真实地址读取自clink列。
<%# Eval("assessment")%>这段代码表示前台显示assessment列的内容。