gpt4 book ai didi

c# - 如何使用任何客户端脚本或服务器端脚本禁用 Calender Extender 中的上一个日期

转载 作者:太空宇宙 更新时间:2023-11-03 16:49:44 25 4
gpt4 key购买 nike

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

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

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

任何人都可以帮助我......我是 Asp.net 的新手.......

最佳答案

我从未真正使用过 Ajax Calendar Extension,但我阅读了其中的一些内容,所以这是一个镜头:

在服务器端执行限制日期的逻辑可能是最简单的。但据我所知,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>

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

关于c# - 如何使用任何客户端脚本或服务器端脚本禁用 Calender Extender 中的上一个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4415787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com