【问题标题】:How to Disable Previous Date in Calender Extender Using any client Side Script OR Server Side Script如何使用任何客户端脚本或服务器端脚本禁用日历扩展器中的上一个日期
【发布时间】:2010-12-11 07:52:51
【问题描述】:

我有两个带有日历扩展器和一个标签的文本框。第一个文本框代表开始日期,第二个文本框代表结束日期,标签代表休假天数。

我遇到的问题是,如果我选择结束日期,我想禁用开始日期之前的所有日期,使用任何客户端脚本或服务器端脚本...... 但是计算开始日期和结束日期并将其存储在(标签)NO.OF Days Leave for this one 我只需要服务器端脚本。

示例:开始日期为 11-12-2010,结束日期为 14-12-2010,休假天数为 4。

谁能帮帮我……我是 Asp.net 的新手…………

【问题讨论】:

    标签: c# javascript asp.net-ajax


    【解决方案1】:

    我从未真正使用过 Ajax 日历扩展,但我阅读了一些关于它的内容,所以这里有一个镜头:

    在服务器端执行限制日期的逻辑可能是最简单的。但据我所知,CalendarExtender 不允许服务器端事件。但解决此问题的一种方法是向您的页面添加一个隐藏的 asp:button 和一个隐藏字段,并使用事件 OnClientDateSelectionChanged 作为第一个 CalendarExtender 来存储日期并伪造单击调用代码隐藏方法的按钮。

    function dateClickEvent(sender, args)  
    {    
        document.getElementById('MyHiddenField').value = sender.get_selectedDate();  
       (document.getElementById('HiddenDateBtn')).click();     
    } 
    

    按钮和字段的标记如下:

        <asp:HiddenField ID="MyHiddenField" runat="server" />    
        <asp:Button ID="HiddenDateBtn" runat="server" Text="Click" Visible="false" 
    style="display:none" OnClick="HiddenDateBtn_Click" /> 
    

    如果您随后使用 RangeValidator 和 ValidatorCalloutExtender,您可以设置范围 用于代码隐藏中的第二个日期扩展器。

    //In your code-behind  
    protected void HiddenDateBtn_Click(object sender, EventArgs e)  
    {  
         string firstDate = MyHiddenField.Value;  
         SecondDateRangeValidator.MinimumValue = firstDate;
    }
    

    验证器的 .aspx 代码应该是这样的:

    <asp:RangeValidator ID="SecondDateRangeValidator" runat="server"
                    ControlToValidate="SecondDateTextBox" ErrorMessage="RangeValidator"
                    Type="Date">
    </asp:RangeValidator>
    <ajaxToolkit:ValidatorCalloutExtender ID="SecondDateRangeValidator_ValidatorCalloutExtender"
                    runat="server" Enabled="True" TargetControlID="SecondDateRangeValidator">
    </ajaxToolkit:ValidatorCalloutExtender>
    

    我自己没有尝试过这段代码 :) 只是在谷歌搜索和阅读后把它放在一起。希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多