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

  • 相关阅读:
    安装 macbook 双系统( OS X 和 Ubuntu )
    微信小程序初探
    [Javascript] Promise
    [AS/400] 基本概念
    [AS/400] Control Language(CL) 基本概念
    [AS/400] Control Language
    [github] 创建个人网页
    [tools] sublime 使用记录
    [Java] TreeMap
    exe转msi
  • 原文地址:https://www.cnblogs.com/pyt5208/p/473528.html
Copyright © 2011-2022 走看看