当前位置:编程学习 > C#/ASP.NET >>

我用vs2010写的.net 4的页面,加了个97日历控件,单引号被转义了,请教怎么处理?

我用了高级的函数,控制两个文本框来输入日期的起始,即起日期输入后结束日期不得小于起日期。

my97控件官方给的是:

onfocus="WdatePicker({isShowClear:false,readOnly:true,firstDayOfWeek:1,errDealMode:1,maxDate:'#F{$dp.$D(\'dateend\')}'})"


我写到aspx页面里面是:

开始日期:<asp:TextBox ID="DateStart" runat="server" 
            ontextchanged="DateStart_TextChanged" onfocus="WdatePicker({isShowClear:false,readOnly:true,firstDayOfWeek:1,errDealMode:1,maxDate:'#F{$dp.$D(\'dateend\')}'})"></asp:TextBox>


但是浏览器访问后单引号被转义了为 '

开始日期:<input name="ctl00$MainContent$DateStart" type="text" id="MainContent_DateStart" onfocus="WdatePicker({isShowClear:false,readOnly:true,firstDayOfWeek:1,errDealMode:1,maxDate:'#F{$dp.$D(\'dateend\')}'})" />


请教要如何处理??谢谢 --------------------编程问答-------------------- 要,maxDate:'#F{$dp.$D(\'dateend\')}'这段干嘛呀,去掉不行么? --------------------编程问答-------------------- maxDate:'<%=DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") %>'

这样就OK --------------------编程问答--------------------
引用 1 楼 gxingmin 的回复:
要,maxDate:'#F{$dp.$D(\'dateend\')}'这段干嘛呀,去掉不行么?


这个是官方给的API函数,加上去才能实现我上面说的限制用户选择日期的行为。默认的日期可以随便选的。我要选了起日期,结束日期只能选择这个起日期后面的日期,前面的被禁用了。 --------------------编程问答--------------------
引用 2 楼 gaind 的回复:
maxDate:'<%=DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") %>'

这样就OK


这个能行吗?我那个是官方给的函数啊,能随便改吗? --------------------编程问答-------------------- 请在去看下API 还有一种是可以这样写的
var minDay = $("#MinDateValue").val();(时间类型的字符串/比如:yyyy-MM-dd HH:mm:ss)
WdatePicker({ isShowClear: false, readOnly: true, dateFmt: 'yyyy-MM-dd HH:mm:ss', minDate: minDay }); --------------------编程问答--------------------
引用 4 楼 ShunYea 的回复:
引用 2 楼 gaind 的回复:maxDate:'<%=DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") %>'

这样就OK

这个能行吗?我那个是官方给的函数啊,能随便改吗?


我就是用的这个日历控件咧。。大仙,一个日期最大值不是随你怎么改么 --------------------编程问答--------------------  把maxDate:'#F{$dp.$D(\'dateend\')}'放在最前面试试
 <asp:TextBox ID="DateStart" runat="server" OnTextChanged="DateStart_TextChanged"
            onfocus="WdatePicker({maxDate:'#F{$dp.$D(\'dateend\')}',isShowClear:false,readOnly:true,firstDayOfWeek:1,errDealMode:1})"></asp:TextBox> --------------------编程问答-------------------- 其实你完全可以进WdatePicker里去设置maxDate的默认值为#F{$dp.$D('dateend')}
这样你就不用在页面的设置这个属性了 --------------------编程问答--------------------
引用 7 楼 Chinajiyong 的回复:
把maxDate:'#F{$dp.$D(\'dateend\')}'放在最前面试试
 <asp:TextBox ID="DateStart" runat="server" OnTextChanged="DateStart_TextChanged"
            onfocus="WdatePicker({maxDate:'#F{$dp.$D(\'datee……


放前面还是一样,被转义了 --------------------编程问答--------------------
引用 5 楼 sibiyellow 的回复:
请在去看下API 还有一种是可以这样写的
var minDay = $("#MinDateValue").val();(时间类型的字符串/比如:yyyy-MM-dd HH:mm:ss)
WdatePicker({ isShowClear: false, readOnly: true, dateFmt: 'yyyy-MM-dd HH:mm:ss', minDate: m……


请问你这个是写在cs文件里的还是aspx文件里的?我怎么没找到你这个官方用法?谢谢 --------------------编程问答--------------------
引用 8 楼 gxingmin 的回复:
其实你完全可以进WdatePicker里去设置maxDate的默认值为#F{$dp.$D('dateend')}
这样你就不用在页面的设置这个属性了


这个我也想的,可惜看不懂那个文件。 --------------------编程问答--------------------
引用 10 楼 ShunYea 的回复:
引用 5 楼 sibiyellow 的回复:请在去看下API 还有一种是可以这样写的
var minDay = $("#MinDateValue").val();(时间类型的字符串/比如:yyyy-MM-dd HH:mm:ss)
WdatePicker({ isShowClear: false, readOnly: true, dateFmt: 'yyyy-MM-dd……

js 里面写 就是赋值一个变量(时间格式字符串) 然后再WdatePicker里面给minDate或maxDate:变量 --------------------编程问答--------------------
引用 12 楼 sibiyellow 的回复:
引用 10 楼 ShunYea 的回复:引用 5 楼 sibiyellow 的回复:请在去看下API 还有一种是可以这样写的
var minDay = $("#MinDateValue").val();(时间类型的字符串/比如:yyyy-MM-dd HH:mm:ss)
WdatePicker({ isShowClear: false, readOnly: true, ……


我看了下,看不懂那些js脚本啊。不知道怎么直接调用上述那个函数 --------------------编程问答--------------------
引用 12 楼 sibiyellow 的回复:
引用 10 楼 ShunYea 的回复:引用 5 楼 sibiyellow 的回复:请在去看下API 还有一种是可以这样写的
var minDay = $("#MinDateValue").val();(时间类型的字符串/比如:yyyy-MM-dd HH:mm:ss)
WdatePicker({ isShowClear: false, readOnly: true, ……


我在js脚本里面修改了他的参数:


minDate:"#F{$dp.$D('DateStart')}",
maxDate:"#F{$dp.$D('DateEnd')}",


直接这样调用:

开始日期:<asp:TextBox ID="DateStart" runat="server" onfocus="WdatePicker({isShowClear:false,readOnly:true,firstDayOfWeek:1,errDealMode:1})"></asp:TextBox>


还是无效 --------------------编程问答-------------------- 很多种方法,
服务器端
this.DateStart.Attribute.Add("onfocus","WdatePicker({isShowClear:false,readOnly:true,firstDayOfWeek:1,errDealMode:1})") --------------------编程问答-------------------- 分享一个自己写好的

 $(document).ready(function () {
    $(".RightDatepick").focus(function () {
        var LeftDatepickValue = $(".LeftDatepick").val();
        if (LeftDatepickValue != "") {
            WdatePicker({
                onpicked: function () { onpickAction("Right") },
                minDate: '%y-&M-%d',
                errDealMode: 0,
                maxDate:"#F{$dp.$DV(\'"+LeftDatepickValue+"\', { d: -1 })}",
                doubleCalendar: true,
                readOnly: true
            });
        }
        else {
            WdatePicker({
                onpicked: function () { onpickAction("Right") },
                minDate: '%y-&M-%d',
                errDealMode: 0,
                doubleCalendar: true,
                readOnly: true
            });
        }
    });

    $(".LeftDatepick").focus(function () {
        var RightDatepickValue = $(".RightDatepick").val();
        if (RightDatepickValue != "") {
            WdatePicker({
                onpicked: function () { onpickAction("Left") },
                minDate: "#F{$dp.$DV(\'" + RightDatepickValue + "\', { d: 1 })}",
                errDealMode: 0,
                doubleCalendar: true,
                readOnly: true
            });
        }
        else {
            WdatePicker({
                onpicked: function () { onpickAction("Lfet") },
                minDate: '%y-&M-{%d+1}',
                errDealMode: 0,
                doubleCalendar: true,
                readOnly: true
            });
        }
    });

});

function onpickAction(Direction) {
    if (Direction == "Right") {
        var leftDatepickinput = $(".LeftDatepick");
        if (leftDatepickinput.val()=="") {
            leftDatepickinput.get(0).focus();
        }
        else{
            TrueAction();
        }
    }
    else {
        var rightDatepickinput = $(".RightDatepick");
        if (rightDatepickinput.val() == "") {
            rightDatepickinput.get(0).focus();
        }
        else {
            TrueAction();   
        }
    }
}

TrueAction() 这个方法是要自己写的,是当两个文本框都有日期就执行的方法,没有的话可以为空函数

RightDatepick   LeftDatepick   两个文本框的 Class名称 
RightDatepick 在前   LeftDatepick   再后 --------------------编程问答--------------------
引用 16 楼 Johnson674423584 的回复:
分享一个自己写好的
Plain Text code?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 $(document).ready(function () { ……


这个是自己写吗?官方给的函数不用调用吗?谢谢 --------------------编程问答--------------------
引用 16 楼 Johnson674423584 的回复:
分享一个自己写好的
Plain Text code?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 $(document).ready(function () { ……

+1 --------------------编程问答--------------------
引用 17 楼 ShunYea 的回复:
引用 16 楼 Johnson674423584 的回复:分享一个自己写好的
Plain Text code?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 $(d……



要啊,要引入my97 日历控件,我地项目经常用到,我就自己写一个出来调用 --------------------编程问答--------------------
引用 19 楼 Johnson674423584 的回复:
引用 17 楼 ShunYea 的回复:引用 16 楼 Johnson674423584 的回复:分享一个自己写好的
Plain Text code?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960……


你这个是js脚本吗?我是不是复制到js文件里面,然后再调用你这个和my97那个?那我的文本框那里要调用什么函数呢?

PS:你这个是符合我那个要求的吗?就是只要选择起日期,那么结束日期就被自动限制为小于起日期的,反之亦然。

谢谢。 --------------------编程问答--------------------
引用 20 楼 ShunYea 的回复:
引用 19 楼 Johnson674423584 的回复:引用 17 楼 ShunYea 的回复:引用 16 楼 Johnson674423584 的回复:分享一个自己写好的
Plain Text code?1234567891011121314151617181920212223242526272829303132333435363738394041424344454……


我这个是符合的的要求的
使用方法  先引入JQuery 的JS包,和 My97日历的 JS包
两个文本框的 Class 为 RightDatepick   LeftDatepick
就可以了
TrueAction();   这个函数是两个文本框 都以选中日期时就会调用到 可以自己写事件在入面 --------------------编程问答--------------------
引用 21 楼 Johnson674423584 的回复:
引用 20 楼 ShunYea 的回复:引用 19 楼 Johnson674423584 的回复:引用 17 楼 ShunYea 的回复:引用 16 楼 Johnson674423584 的回复:分享一个自己写好的
Plain Text code?12345678910111213141516171819202122232425262728293031323334353……


先引入JQuery 的JS包,和 My97日历的 JS包 在引入这个我的JS --------------------编程问答-------------------- 5楼正解
最近做一个模块也用到这个功能,直接看官方教程里面有啊 --------------------编程问答--------------------
 <input id="txtStartTime" type="text" readonly="readonly" runat="server" class="Wdate ym "
                    style="width: 150px;" onfocus="WdatePicker({readOnly:true,
                                          dateFmt:'yyyy-MM-dd HH:mm',
                                          isShowToday:true,
                                          minDate:'#F{$dp.$D(\'txtDeadline\')||\'%y-%M-%d\'}',
                                          maxDate:'#F{$dp.$D(\'txtEndTime\')}',
                                          oncleared:showDatePrompt
                             })" />

 <input id="txtEndTime" type="text" readonly="readonly" runat="server" class="Wdate ym "
                    style="width: 150px;" onfocus="WdatePicker({readOnly:true,
                                          dateFmt:'yyyy-MM-dd HH:mm',
                                          isShowToday:true,
                                          minDate:'#F{$dp.$D(\'txtStartTime\')}',
                                          maxDate:'2020-10-01',
                                          oncleared:showDatePrompt
                             })" />
 <input id="txtDeadline" type="text" readonly="readonly" runat="server" class="Wdate ym "
                    style="width: 150px;" onfocus="WdatePicker({readOnly:true,
                                          dateFmt:'yyyy-MM-dd HH:mm',
                                          isShowToday:true,
                                           minDate:'%y-%M-%d',
                                          maxDate:'#F{$dp.$D(\'txtStartTime\')}',
                                          oncleared:showDatePrompt
                             })" />
--------------------编程问答--------------------
引用 24 楼 xcchcaptain 的回复:
C# code?12345678910111213141516171819202122232425 <input id="txtStartTime" type="text" readonly="readonly" runat="server" class="Wdate ym "                    style="width: 150px;" onfocu……


你这个里面同样有单引号了,无效啊。 --------------------编程问答--------------------
引用 25 楼 ShunYea 的回复:
引用 24 楼 xcchcaptain 的回复:
C# code?12345678910111213141516171819202122232425 <input id="txtStartTime" type="text" readonly="readonly" runat="server" class="Wdate ym "                    style="width: 1……

是html代码,我搞错了,但是你说的单引号问题是怎样的,我没有遇到 啊 --------------------编程问答-------------------- 哦,你是用Textbox控件,我使用的Input标签 --------------------编程问答-------------------- 但是我的Input是加了runat="server"属性的在后置代码文件可以取到控件的哦
textbox在生成html代码时,是不是会经历编码解码的过程呢? --------------------编程问答--------------------
引用 28 楼 xcchcaptain 的回复:
但是我的Input是加了runat="server"属性的在后置代码文件可以取到控件的哦
textbox在生成html代码时,是不是会经历编码解码的过程呢?


我换成input也是一样被转义了啊。我也加了runat="server"属性 --------------------编程问答--------------------
引用 29 楼 ShunYea 的回复:
引用 28 楼 xcchcaptain 的回复:
但是我的Input是加了runat="server"属性的在后置代码文件可以取到控件的哦
textbox在生成html代码时,是不是会经历编码解码的过程呢?

我换成input也是一样被转义了啊。我也加了runat="server"属性


建议你使用js添加属性的方式把代码添加到属性里面吧 --------------------编程问答-------------------- 把单引号把变成这样: '=\" --------------------编程问答--------------------
引用 31 楼 askformore1100 的回复:
把单引号把变成这样: '=\"


用这个双引号把后面的函数变成aspx里面的代码了,出错。 --------------------编程问答--------------------
引用 21 楼 Johnson674423584 的回复:
引用 20 楼 ShunYea 的回复:引用 19 楼 Johnson674423584 的回复:引用 17 楼 ShunYea 的回复:引用 16 楼 Johnson674423584 的回复:分享一个自己写好的
Plain Text code?12345678910111213141516171819202122232425262728293031323334353……


那你给的那串代码我贴哪里呢?谢谢。 --------------------编程问答--------------------
引用 33 楼 ShunYea 的回复:
引用 21 楼 Johnson674423584 的回复:引用 20 楼 ShunYea 的回复:引用 19 楼 Johnson674423584 的回复:引用 17 楼 ShunYea 的回复:引用 16 楼 Johnson674423584 的回复:分享一个自己写好的
Plain Text code?123456789101112131415161718192021……

新建一个JS文本,复制上去就可以了
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,