前后台,页面间传递多个参数

   虽然BS的视频内容都要学习完了,但是当我拿到关于考试系统的优化任务后,自己还是没有办法解决问题,虽然事后觉得问题都很简单,但是在结果过程中还是出现了这样那样的问题,还真是实践出真知呀,虽然遇到的问题都在视频中看过,但是一遇到问题还真是想不到办法,不过通过这次的问题,以后就不会忘记了!

       遇到很多问题,页面刷新问题啦,抛出异常问题啦,传值问题啦,在这里觉得还是把传值问题拿出来说说吧:
       在优化内容里有一项任务是编辑错误信息的,逻辑是:在页面显示的未处理的错误信息里,随便点击一条进行编辑,跳转到编辑页面,编辑后将数据存储到数据库中;
       一、前后台传值(以传值2个为例)
       需求:当点击LinkButton按钮时,将前台数据传入到后台,使用属性:CommandArgument ;
       代码:

 <!--编辑按钮,传参,及响应的事件-->
<asp:LinkButton ID="lbtnEdit" runat="server" CausesValidation="False" CssClass="opt" 
           OnClick="lbtnEdit_Click" CommandArgument='<%# Eval("Id")+","+Eval("ErrorCode")  %>'>
            <span class="icon-sprite icon-edit"></span>  
</asp:LinkButton>        
      在学习asp.net的过程中学到过 CommandArgument 属性,但是当用的时候突然就没感觉了,传入一个参数也用过,可是当我需要传入多个参数的时候也就不会用了,查阅资料才弄明白语法,这让我明白,学习要举一反三也要会用帮助文档。

       前台的值是传过来了,可是在后台怎么捕捉呢?! 这个不用着急,既然可以传入多个值,那么就一定可以捕捉到,只不过多个值在后台是数组的形式:

                //实例化
                LinkButton editbtn = (LinkButton)sender;
                //获取前台传回的值               
                string[] strerrorinfo = editbtn.CommandArgument.ToString().Split(',');
                string strId = strerrorinfo[0].ToString();
                string strErrorCode = strerrorinfo[1].ToString();
        这样很简单就可以在前后台进行多值的传递了。

        二、页面间传多个值

        之前学习过传递一个值,那么就一定可以传递多个值,关键是该怎么传递呢?方式有很多种,下面就说一下我用的也是我觉得最简单的传递:

      页面1代码:       

    Response.Redirect("EditError.aspx?ErrorCode=" + strErrorCode + "&Id=" + strId);
      开始以为中间也是用“+”连接,因为前后台参数的连接是,后来经过验证不正确,所以两个参数间的连接符为"&"

      页面2代码:   

     errorrecordentity.Id = Request.QueryString["Id"];
     errorrecordentity.ErrorCode = Request.QueryString["ErrorCode"];
     这样就可以在页面间传递多个参数了

      虽然我现在代码是这样写的,但是查过资料后发现,页面间传值的效率比从数据库中查询的效率要低,这点还没验证。希望各位踊跃发言。。



评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值