Datepicker(Jquery)在Listview(ASP.NET),代码隐藏(vb.net)

ylamdve6  于 2023-04-20  发布在  jQuery
关注(0)|答案(1)|浏览(180)

我在列表视图中有一个文本框,它从DatePicker(Jquery)接收输入。现在我必须验证来自该文本框的日期/输入。这就是我代码的逻辑:用户将通过单选按钮选择她选择购买的日期。如果用户选择[芒果],则会出现日期文本框以及日期选择器jquery的日历图标。现在用户将选择[生效日期]的日期。日期选择器可以完美地完成此操作,但我不知道如何验证用户是否选择了正确的日期,因为它应该在数据库提供的日期范围内。例如,芒果季节,有效日期应该仅从2023年5月开始,如果用户选择2023年4月13日,则会触发警告,要求她选择其他日期。
我以为我尝试了当文本框改变它的值,但这只会触发当用户点击键盘上的回车。我需要验证输入一旦datepicker输入文本框的值。我怎么做?我使用vb.net上的codebeath。
部分标记:

<td valign="middle" style="white-space: nowrap; text-align:center;">
          <%# CheckNull(Eval("EFF_DATE"))%>
          <ASP:Textbox runat="server" ID="dtEffectiveDate" CssClass="dateSelector"
                                    MonitorChanges="true" 
                    OnTextChanged="dtEffectiveDate_TextChanged" />                                   
                                
    </td>

部分脚本:

$("<%=listView.ClientID %> tr").each(function () {
    $('.dateSelector').datepicker();
});

出于样本目的:

x4shl7ld

x4shl7ld1#

不是100%清楚为什么你不只是使用TextMode=“date”(你不需要jQuery日期选择器)。
但是,这是任何文本框吗?
你可以添加/设置一个ontextchanged事件。但是,要让它在更改时“自动”触发?你需要添加以下内容:

<asp:Textbox runat="server" ID="dtEffectiveDate" 
                    CssClass="dateSelector"
                    MonitorChanges="true"
                    OnTextChanged="dtEffectiveDate_TextChanged"
                    AutoPostBack="true"            
                    />

我也不知道这里的“监视器变化”是什么???
所以,上面的代码现在可以是:

Protected Sub dtEffectiveDate_TextChanged(sender As Object, e As EventArgs)

    Dim dtEffctive As TextBox = sender
    Dim lvRow As ListViewItem = dtEffctive.NamingContainer

    Dim txtTree As Label = lvRow.FindControl("lblTree")

    ' code here to get the data in question

End Sub

上面展示了如何拾取当前行-从当前行获取触发changed事件的其他控件值。
但是,您需要autopostback = true,并且这是您想要“回发”页面的任何文本框所必需的。
如果你不回发页面(使用autopost-back = true),那么在提交时,将触发ontext changed事件,但这可能不是你想要的。
因此,与按钮不同,要为文本框触发事件,必须向文本框添加autopostback =“true”。

相关问题