日期:2014-05-19  浏览次数:20414 次

关于datagrid超连接的问题
一共两个页面 第一个显示学生学号 第二个显示详情
其中第一个页面里有这么一段话 

  <Columns>
                                <asp:HyperLinkColumn     DataNavigateUrlField= "Student_id "  
                                    DataNavigateUrlFormatString= "Detail.aspx?sid={0} "
                                    DataTextField= "Student_id "
                                      HeaderText= "详情 "> </asp:HyperLinkColumn>
</Columns>

其中   DataNavigateUrlFormatString= "Detail.aspx?sid={0} "解释一下 sid有什么作用? 我另外一个页面Detail.aspx页面里的select * from student   where   student_id=sid 这样好象不行啊 该怎么做啊? 大家明白我的意思吗 就是点那个连接就出现学生的详情 


------解决方案--------------------
你要在detail.aspx页上用Request[ "sid "]获取这个参数后才能使用
------解决方案--------------------
sid是传到Detail.aspx的参数,可以用Request.QueryString[ "sid "]取得该值
------解决方案--------------------
sid表示你要显示的是哪一条记录,在数据库中根据sid来查找相应的记录.在第二个页面中不能直接使用sid,应该先指定一个数值接收sid,如string sid = Request.QueryString[ "sid "]。然后再查询select * from student where student_id=sid
------解决方案--------------------
sid是传到Detail.aspx的参数,可以用Request.QueryString[ "sid "]取得该值,这个是跨页面传值的一个方法而已,利用url参数来传。
DataNavigateUrlFormatString= "Detail.aspx?sid={0},这个是构造了一个url字符串,并指定sid这个url参数的值是数据集中的student_id字段


------解决方案--------------------
页面Detail.aspx页面里的select * from student where student_id=sid 

应该这样写类似的代码
sid = Request.QueryString[ "sid "].Trim();
strSql = "select * from student where student_id= "+sid(这里如果数据库中student_id是字符型的,那么得变成
"select * from student where student_id=‘ "+sid+“’”,如果是数值型的那么就使用我这个
------解决方案--------------------
DataNavigateUrlField= "Student_id " 那个{0}的值就是根据这个取的...

跳转到另一个页面的时候Request.QueryString[ "sid "] 就行了...
------解决方案--------------------
Student_id是你的数据源的字段哈