日期选择器UI停止,函数不会第二次运行

本文关键字:第二次 运行 函数 选择器 UI 停止 日期 | 更新日期: 2023-09-27 17:57:50

前端代码如下

 <div id="dvRecWed" style="display: none">
                    <asp:UpdatePanel ID="PnlUsrDetails" runat="server">
                        <ContentTemplate>
                            <table>
                                <tr>
                                    <td>Reception Date</td>
                                    <td>
                                        <asp:TextBox ID="txtReceptionDate" runat="server"></asp:TextBox>
                                    </td>
                                    <td>&nbsp;</td>
                                    <td>&nbsp;</td>
                                    <td>&nbsp;</td>
                                    <td>&nbsp;</td>
                                    <td>Reception Time</td>
                                    <td>
                                        <asp:DropDownList AutoPostBack="true" ID="ddlReceptionTime" runat="server" OnSelectedIndexChanged="txtUsername_TextChanged">
                                            <asp:ListItem>--Select--</asp:ListItem>
                                            <asp:ListItem Value="Forenoon">Forenoon</asp:ListItem>
                                            <asp:ListItem Value="Afternoon">Afternoon</asp:ListItem>
                                            <asp:ListItem Value="FullDay">Full Day</asp:ListItem>
                                        </asp:DropDownList>
                                    </td>
                                    <td>
                                        <div id="checkdate" class="checkdate" runat="server" visible="false">
                                            <asp:Image ID="imgstatus" runat="server" Width="17px" Height="17px" />
                                            <asp:Label ID="lblStatus" runat="server"></asp:Label>
                                        </div>
                                    </td>
                                </tr>

我的后端代码是

protected void txtUsername_TextChanged(object sender, EventArgs e)
{
    if (!string.IsNullOrEmpty(ddlReceptionTime.Text))
    {
        string connString = ConfigurationManager.ConnectionStrings["MandapamDatabase"].ConnectionString;
        OleDbConnection connection = new OleDbConnection(connString);
        // SqlCommand cmd = new SqlCommand("select * from UserInformation where UserName=@Name", con);
        string selectQuery = "SELECT FunctionTime FROM function WHERE FunctionDate=@FunctionDate AND FunctionTime='FullDay'";
        connection.Open();
        OleDbCommand command = new OleDbCommand(selectQuery, connection);
        command.Connection = connection;
        command.CommandText = selectQuery;
        command.CommandType = CommandType.Text;
        command.Parameters.AddWithValue("@FunctionDate", txtReceptionDate.Text);
        command.Parameters.AddWithValue("@FunctionTime", ddlReceptionTime.Text);
        OleDbDataReader dr = command.ExecuteReader();
        if (dr.HasRows)
        {
            checkdate.Visible = true;
            imgstatus.ImageUrl = "~/img/cross.png";
            lblStatus.Text = "Date Unavailable";
            lblStatus.ForeColor = System.Drawing.Color.Red;
        }
        else
        {
            checkdate.Visible = true;
            imgstatus.ImageUrl = "~/img/check.png";
            lblStatus.Text = "Date available";
        }
    }


    else if (!string.IsNullOrEmpty(ddlReceptionTime.Text))
    {
        string connString = ConfigurationManager.ConnectionStrings["MandapamDatabase"].ConnectionString;
        OleDbConnection connection = new OleDbConnection(connString);
        // SqlCommand cmd = new SqlCommand("select * from UserInformation where UserName=@Name", con);
        string selectQuery = "SELECT FunctionTime FROM function WHERE FunctionDate=@FunctionDate AND FunctionTime=@FunctionTime";
        connection.Open();
        OleDbCommand command = new OleDbCommand(selectQuery, connection);
        command.Connection = connection;
        command.CommandText = selectQuery;
        command.CommandType = CommandType.Text;
        command.Parameters.AddWithValue("@FunctionDate", txtReceptionDate.Text);
        command.Parameters.AddWithValue("@FunctionTime", ddlReceptionTime.Text);
        OleDbDataReader dr = command.ExecuteReader();
        if (dr.HasRows)
        {
            checkdate.Visible = true;
            imgstatus.ImageUrl = "~/img/cross.png";
            lblStatus.Text = "Date Unavailable";
            lblStatus.ForeColor= System.Drawing.Color.Red;
        }
        else
        {
            checkdate.Visible = true;
            imgstatus.ImageUrl = "~/img/check.png";
            lblStatus.Text = "Date Available";
        }
    }
    else
    {
        checkdate.Visible = false;
    }
}

所以我在这里面临的问题是代码实际上正在运行,但这是在它显示标签之后。我不能点击日期文本框,它使用日期选择器UI,在标签出现后不会显示日历。。。它还禁用了其他日期选择器文本框的js,这些文本框甚至与这些字段无关重要的问题是它停止了日期选择器UI,除非我刷新页面,否则这个代码本身不会再次运行。我希望能够检查其他可用的日期(如果没有)…所以请再次帮助我。。。提前感谢

日期选择器UI停止,函数不会第二次运行

因为我在你的问题中看不到任何日期选择器代码,并且假设你使用的是相同的jquery ui日期选择器。

顺便说一句,你也可以使用以下相同的:

function jScript() {
        $(document).ready(function () {
            $('.datepicker').datepicker({
                dateFormat: "dd/M/yy",
                changeMonth: true,
                changeYear: true,
                yearRange: '1950:' + new Date().getFullYear().toString()
            });
        });
    }

你必须使用日期选择器类的文本框如下:

<asp:TextBox class="form-control" autocomplete="off" ID="txtdate" CssClass="datepicker"
                                    placeholder="mm/dd/yy" runat="server"></asp:TextBox>   

现在,为了在每次加载页面后初始化日期选择器,您必须使用下面的代码,基本上它每次都加载上面的函数。

 <asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<script type="text/javascript" language="javascript">
    Sys.Application.add_load(jScript);    
</script>

请根据此更新您的代码,可能会有所帮助。

这可能是由于您在表单中使用的更新面板。在这种情况下,您必须在主页面文件中添加以下代码。

所有需要在异步回发调用中重新加载的jquery,都应该添加到下面的函数中。

<script type="text/javascript">
    function pageLoad() {
        $.getScript('MY_UTILITY_SCRIPT.js', function () {
        });
    }
  </script>