0

我正在尝试使用文本框、日历、按钮和更新字段在 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
4

1 回答 1

0

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

于 2013-03-08T02:17:45.717 回答