zoukankan      html  css  js  c++  java
  • 遇到一个关于ObjectDataSource的奇怪问题

    问题描述:

    我要从一个页面通过GET传值到另一个含有ObjectDataSource控件的页面, ObjectDataSource控件中所需的两个参数正是从上一个页面通过GET传过来的两个值。

    GET字符串如下:

        “~/SeePage.aspx?Status=未处理&Source=内部”

    ObjectDataSource配置,如下图:

    但奇怪的是,通过在数据层设断点发现,传到ObjectDataSource中的Status”中的值只剩下两个字未处,后面的字不见了。但是Status中如果是二个或四个字的,却可以完整的取到。难道是个小BUG

     解决方案:

    后来怎么弄都不行,只好把GET字符串先进行URL编码一下再传过去,代码如下:

    "~/SeePage.aspx?Source=" + Server.UrlEncode("外部") + "&Status=" + Server.UrlEncode("未处理")

    然后在ObjectDataSource中手动设置一下参数源是QueryString,设置一下QueryStringField就行了。

    这样子其实就可以解决了,但是我又节外生枝,以为通过URL编码传过去的字符串,ObjectDataSource控件不能自动解码(其实可以),于是就在Page_Load事件函数中手动添加了ObjectDataSource中所需的参数值,代码如下:

    protected void Page_Load(object sender, EventArgs e)

        {

            string status=Server.UrlDecode(Request.QueryString["Status"]);

            string source = Server.UrlDecode(Request.QueryString["Source"]);

            this.ObjectDataSource1.SelectParameters.Add("Status", status);

            this.ObjectDataSource1.SelectParameters.Add("KnowSource",source);

    }

    没想到ObjectDataSource能自动解码,哈哈,后来试了下才发现的!

  • 相关阅读:
    话说 SVN 与 Git 之间的区别
    CentOS 7 之安装 Oracle 11gR2
    @meda媒体查询
    为样式找到应用目标-CSS选择器
    JQuery和原生JavaScript实现网页定位导航特效
    CSS代码缩写
    认识CSS样式
    文档类型、DOCTYPE切换和浏览器模式
    MIME 参考手册
    微格式(microformat)
  • 原文地址:https://www.cnblogs.com/pyt5208/p/473528.html
Copyright © 2011-2022 走看看