【三层架构】页面间传值

来源:互联网 发布:网络调研平台 编辑:程序博客网 时间:2024/06/06 19:38

应用实例

将点击在我的主页里面,点击“我开过的课”,页面跳转,显示我开过的课程信息。

界面设计

添加一个按钮,在按钮中写事件。


后台代码

按钮事件

protected void lbKaike_Click(object sender, EventArgs e)        {            string url = "/wenjian/lcts/list.aspx?fabuzhe=" + xingming;//xingming是在该页面已经读取出来了的            Response.Redirect(url);        }

这时候,那你问道:xingming是个什么东西?姓名其实就是你加载我的主页的时候,用户名的名称,已经被读取出来了。

 //用来保存用户名   public string xingming;   xingming = sdr["xingming"].ToString();

至此只要我们点击按钮,按钮就能够跳转到list.aspx页面了。

但是list.aspx页面如何显示该用户的课程信息呢?

list.aspx

哦,该list页面是动软的三层代码生成器生成的,只要数据库中的表里面有数据,那么list.aspx就能够显示所有的课程页面信息。但是如何只显示?传过来的发布者的课程列表呢?
我们可以先了解一些list.aspx页面的显示课程信息的原理。
First,list.aspx的cs的Pageload事件里面写了个 BindData();那就是要调用它咯。
BindData()可以干什么呢?显示课程数据啦!
那么只要我们的sql语句在读取数据表中的数据的时候,给它增加一点条件,让它只读取有发布者名称的数据信息,显示出来的不就是我们需要的课程表格吗?
不好意思,没有Second了。
SO,let's 增加条件,来一个条件吧。
      
 public void BindData()        {            string fabuzhe = "";//将发布者先设定为空            fabuzhe = Request.QueryString["fabuzhe"];//如果由东西从URL上传来,那么string fabuzhe就是传递过来的值。            DataSet ds = new DataSet();            StringBuilder strWhere = new StringBuilder();            if (txtKeyword.Text.Trim() != "")            {#warning 代码生成警告:请修改 keywordField 为需要匹配查询的真实字段名称            strWhere.AppendFormat("kcBiaoti like '%{0}%' or kcLeixing like '%{0}%'", txtKeyword.Text.Trim());                          }            if (fabuzhe != "")//如果发布者不为空,那就是要求只显示发布者信息咯。            {                strWhere.AppendFormat("fabuzhe like '%{0}%' ", fabuzhe);//给SQL加上条件,数据的出来,发布者要是这个人哦<pre name="code" class="csharp"><pre name="code" class="csharp">//'%{0}%就是这个人 或甲或已或丙或丁......            }            ds = bll.GetList(strWhere.ToString());//获得一个实例化过的真真正正的dataset            gridView.DataSource = ds;            gridView.DataBind();        }

于是你的页面就只显示发布者是甲或乙或丙的开的课啦。
真棒!

作业

将课程页面的课程标题传递到微课页面,显示该课程信息,有多少节课等。

妈蛋,在gridview里面传递信息还可以这么干。

   <asp:HyperLinkField HeaderText="标题" ControlStyle-Width="50" DataNavigateUrlFields="kcBiaoti"                DataNavigateUrlFormatString="/wenjian/MiroLcts/list.aspx?weikecheng={0}" Text="标题" />
下面就只剩下,在MiroLcts/list.aspx页面里面设定数据读取条件了。和上面的一样,只用添加三行代码就可以了,我用*标出来哦!

       public void BindData()        {                       string kechengID = "";//*            kechengID = Request.QueryString["kechengID"];//*            DataSet ds = new DataSet();            StringBuilder strWhere = new StringBuilder();            if (kechengID != "")            {                strWhere.AppendFormat("kechengID like '%{0}%'", kechengID);//*            }            ds = bll.GetList(strWhere.ToString());            gridView.DataSource = ds;            gridView.DataBind();        }


0 0
原创粉丝点击