【三层架构】页面间传值


应用实例

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

界面设计

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


后台代码

按钮事件

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值