【问题标题】:How to customize calendar selection in ASP.NET如何在 ASP.NET 中自定义日历选择
【发布时间】:2013-03-08 01:30:37
【问题描述】:

我正在尝试使用文本框、日历、按钮和更新字段在 ASP.Net 中创建一个日期时间选择器。

如果用户单击按钮,则带有隐藏日历的面板将变为可见,如果用户选择日期,则日历的可见性将变为 false,并且他的日期将分配给 textBox。

如果用户想要更改月份,我的问题就出现了,因为在这种情况下,日历会因为 selectionChange 被触发而消失。

我的问题是如何才能在选择日期的情况下找出月份的变化并限制面板的隐藏?

非常感谢您。

这里是代码示例:

前半部分:

<asp:UpdatePanel ID="UpdatePanel2" runat="server">
        <ContentTemplate>
    <asp:TextBox ID="TextBox2" runat="server" />
            <asp:ImageButton ID="Imbut" runat="server" ImageUrl="imagesNew/calender.png" Height="17px" Width="17px" />
    </ContentTemplate>
        <Triggers>
        <asp:AsyncPostBackTrigger ControlID="Calendar1" EventName="SelectionChanged" />
        </Triggers>
    </asp:UpdatePanel>

    <br />


    <br />
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
        <asp:Panel ID="Panel1" runat="server">
            <asp:Calendar ID="Calendar1" runat="server" Height="129px" Width="209px">
            </asp:Calendar>
        </asp:Panel>
        </ContentTemplate>
        <Triggers>
        <asp:AsyncPostBackTrigger ControlID="Imbut" EventName="Click" />
        </Triggers>
    </asp:UpdatePanel>

后半部分

Protected Sub Imbut_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Imbut.Click
    Panel1.Visible = True
End Sub

Protected Sub Calendar1_SelectionChanged(ByVal sender As Object, ByVal e As EventArgs) Handles Calendar1.SelectionChanged

        TextBox2.Text = Calendar1.SelectedDate.ToString("dd/MM/yyyy")
        Panel1.Visible = False

End Sub

【问题讨论】:

    标签: asp.net vb.net


    【解决方案1】:

    我也遇到过类似的问题。问题是(如您所述)在回发时控件被重置。我从来没有找到用 asp.net 控件优雅地做到这一点的方法。我能够使用 jQuery 日历和 asp:hidden 字段来完成此操作。通过JavaScript保持IT客户端,我能够允许用户导航日历更改日期等。选择日期时,将值设置为UI中的文本框以及隐藏的字段,然后在提交中,在提交中,该值,文本框或隐藏字段在服务器端被拾取并(在我的情况下)用作过滤器参数。

    【讨论】:

    • 是的。但是您如何区分选择日期和更改月份?
    • 您可以通过 javascript 执行此操作,并将值存储在 javascript 变量中或将变量写入文档中的字段(隐藏或可见)。这消除了回发到服务器的需要,因为您在此客户端保留文档中的值
    猜你喜欢
    • 2023-03-30
    • 2011-09-25
    • 1970-01-01
    • 2022-01-18
    • 2014-06-16
    • 2020-02-05
    • 1970-01-01
    • 2021-06-08
    • 1970-01-01
    相关资源
    最近更新 更多