页面之间如何传递特殊字符

最近在做页面传值时,遇到了一个问题,问题还原:

第一个页面使用数据源控件DataBindControl绑定数据源,然后使用HyperLinkField控件绑定后台数据,并且传递参数到第二个页面。数据绑定代码如下:

<span style="font-size:18px;"><SOA:DeluxeObjectDataSourcerunat="server" EnablePaging="True"ID="DataSourceServicePack"
               TypeName="SinoOcean.Seagull2.TransactionData.PlanManage.ReportHelper.GenerrateKeyPointAchievingRateOfServicepack()"/>
页面传值代码如下:
<asp:HyperLinkFieldDataNavigateUrlFields="PlanCode,PlanVersionStartTime,beginTime,endTime"DataNavigateUrlFormatString="DelayKeyPointTaskOfServicePack.aspx?PlanCode={0}&PlanVersionStartTime={1}&beginTime={2}&endTime={3}"
                       Target="_blank" Text="查看" HeaderText="查看"/></span>

问题出现了,运行代码以后,发现页面上的超链接按钮处于不可单击状态,分析发现,删除时间参数后,此按钮可用,那么为什么会是这样的状况呢?百度之,原来是时间格式问题,原来绑定数据源时,数据源的时间格式为“yyyy-MM-dd
HH:mm:ss.fff”,度娘说,地址栏不能识别特殊符号,因此,这个链接不可单击。

既然是格式不对难就改呗,换一个能传过去的不就可以了吗?马上动手,尝试了一下,改为"yyyy/MM/dd
HH/mm/ss.fff",果然可以传过去了,传值问题解决了,可是新问题又出现了。

数据传递成功后,还是不能正常查询,发现改完格式后的时间不能进行正常数据查询了,原来还是格式不对头,那怎么办呢?在新的页面改回去呗。

继续百度之,发现一种解决方案,即字符串分割转换法,首先,将字符串分割成多个部分,然后分别转换,即可。

我的字符串分为两部分,第一部分需要将日期中间的特殊字符转换为横向小短线,第二部分需要将特殊字符转换为冒号,转换方法不一样,那就分开转换。

在页面传值时,重新设计字符串传递格式,改为"yyyy/MM/dd THH/mm/ss.fff"格式,然后根据T为分隔符,分为两个字符串分别转换,代码如下。

<span style="font-size:18px;">stringversionStartTime =WebUtility.GetRequestQueryString("PlanVersionStartTime","");
                if (versionStartTime !="")
                {
                    string ss =versionStartTime.Split('T')[0].ToString();
                    string ee =versionStartTime.Split('T')[1].ToString();
                    versionStartTime =ss.Replace('/', '-') + " " + ee.Replace('/', ':');
                }</span>

数据转换成功,可以正常查询了。

时间: 2024-10-10 04:59:42

页面之间如何传递特殊字符的相关文章

页面之间值传递常用的几种方式

1.QuerySting在页面间传递值 这种方法的写法:在要传递值的页面,Response.Redirect(url),值包含在在url中.接收值得页面,Request.QueryString["变量名"]. 这是使用起来很简单的一种方式,但是它不是很安全,因为值会在浏览器里的地址栏里显示.并且它也不能传递对象,对长度也有限制,如果要传递的值很多,且对安全要求也高的话,这种方式就不适合了. 2.Session变量 我们通常在一个页面中,将值放到session变量中,在另外几个页面使用它

Vue:不同页面之间的传递参数--params

在嵌套vue-router情况下,不同页面之间传递参数可以通过params实现.而params传参分为两种情况: 1.参数在url中显示 首先你要确定自己要传的参数,并在控制路由的文件中的Router中path内添加对应的字段如: { path:'/paramsUrl/:name/:age/:sex', component:paramsUrl} 我要传的参数是姓名,年龄以及性别. 在你要跳转的组件内定义参数,如: stu:{name:'Tom',age:18,sex:'male'} 同时在HTM

webview页面之间的传递

这个问题很普遍,当你在新闻列表点击一条新闻的时候,是向新闻详情页面传递了一个新闻ID,然后新闻详情页面通过ID来获取该新闻的相关数据. //list.html mui.openWindow({ url: "about.html", id: "about", style: {}, show: { aniShow: 'pop-in', duration: 200, }, waiting: { autoShow: false }, extras: { param1:'he

ASP.NET页面之间数据传递的几种方法

1)Request.QueryString   在ASP时代,这个是较常用的方法,到了ASP.NET,好像用的人不多了,但是不管怎么说,这是一个没有过时,且很值得推荐的方法,因为不管是ASP还是ASP.NET,最基本的都还是基于HTTp协议的. 缺点是非常明显的,让在多个页面传递时,可能就Request不到了 2)Session   这个是最常用的一个方法,Session的优点是使用简单,缺点是占用服务器资源,因为每一个Session都意味这服务器需要维护相应客户的会话信息,自然如果登录的用户多

【php】基本语法与页面之间数值传递

直接上个例子跟大家说明一下吧~ 一.基本目标 在phpsend.html设置一个表单,上面输入的数值能够被phpget.php能够收到 二.制作过程 如同javascript一样,php中的数值是不分类型的,一个$就代表数值, 之后如果要使用这个变量都要带上这个$表示这是一个变量 各语言中的for,switch case,while,if else等结构依旧存在 !=,=等运算符也是存在的 在输出语言echo中,用${某某某变量}来强制设置输出这个变量的值. (1)phpsend.html 这是

两个Html页面之间值得传递

传值的页面:<a href='stockProductInfo.html?prdId="+v.prdID+"' target='_blank'></html> 取值的页面: var getQueryString = function getQueryString(name) {     var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", &q

iframe子页面之间值传递

<div style="width:100%;height: 100%;"> <div style="width:74%;height: 70%;float: left"><iframe id ="a" name="priceManage" th:src="@{priceManage}" style="width:100%;height: 100%;" fr

实现html与html 页面之间传递参数以及接收参数

html与html 页面之间传递参数以及接收参数 要实现html与html页面之间进行参数传递,只需要在html页面中添加如下js代码即可 <script type="text/javascript"> <!--获取页面之间的传递的参数--> function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)

ASP.NET 页面之间传值的几种方式

原文:http://www.cnblogs.com/wangjiming/archive/2017/01/18/6275854.html#!comments 详解每种方法 一.Request.QueryString 核心代码: protected void getQueryString_Click(object sender, EventArgs e) { string QueStr = Request.QueryString["name"]; Response.Write(QueSt