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能自动解码,哈哈,后来试了下才发现的!

  • 相关阅读:
    scm工作流部署问题解决
    mysql 数据库时间慢了8小时
    Vue加了二级路由后,跳转后js好像都失效
    flutter 莫名其妙错误集锦
    confluence-6.7.1 install
    git idea 项目复原
    springboot 本地jar发布,打war包
    flutter 初探2--点击按钮打开新窗口
    [转载]无法解决 equal to 操作中 "Chinese_PRC_CI_AS" 和 "Chinese_PRC_CI_AS_KS_WS" 之间的排序规则冲突
    [转载]天赋秉异的人永远是少数
  • 原文地址:https://www.cnblogs.com/pyt5208/p/473528.html
Copyright © 2011-2022 走看看