我的updatepanel中有一个下拉列表和文本框。即AuditName,审核日期。 AuditName下拉列表具有从数据库中检索的值。审核日期用于设置日期,这里使用的是jquery datepicker。
问题是当页面加载日期选择器工作正常时。但是当我从下拉列表中选择值时,datepicker没有工作(甚至没有显示日期)。
当我首先选择日期时,请选择文本框值清除的下拉列表。我不知道为什么会发生..
我的代码是,
<script>
$(function () {
$('#<%= txtAuditduedate.ClientID %>').datepicker(
{ minDate: 0, changeMonth: true, changeYear: true });
});
</script>
<asp:UpdatePanel runat="server" ID="upnlAddschedule" UpdateMode="Conditional">
<ContentTemplate>
<table cellpadding="5" cellspacing="5" width="100%">
<tr>
<td align="right">
<asp:Label runat="server" ID="lblAuditlist" Text="Audit Name:/>
</td>
<td align="left">
<asp:DropDownList runat="server" ID="ddauditlist" TabIndex="100" AppendDataBoundItems="true" Width="194px" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
</asp:DropDownList>
</td>
</tr>
<tr>
<td align="right">
<asp:Label runat="server" ID="lblDuedate" Text="Audit Due Date:"></asp:Label>
</td>
<td align="left">
<asp:TextBox runat="server" ID="txtAuditduedate" Width="189px" Font-Bold="False" ReadOnly="true" TabIndex="101" />
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
这是我的下拉绑定代码,
public void FillDropDownList()
{
s = WebConfigurationManager.ConnectionStrings["Scon"].ConnectionString;
con = new SqlConnection(s);
con.Open();
cmd = new SqlCommand("select AUDITNAME from MASTER ", con);
dr = cmd.ExecuteReader();
while (dr.Read())
{
ddauditlist.Items.Add(new ListItem(dr["AUDITNAME"].ToString()));
}
dr.Close();
con.Close();
}
答案 0 :(得分:3)
每次更新UpdatePanel时尝试绑定datepicker。
<script>
$(document).ready(function () {
bindDatePicker();
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(bindDatePicker);
});
function bindDatePicker() {
$('#<%= txtAuditduedate.ClientID %>').datepicker({
minDate: 0,
changeMonth: true,
changeYear: true
});
}
</script>
<!-- Add the ScriptManager if it doesn't already exist on your page -->
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
答案 1 :(得分:1)
添加脚本,这就是我的工作。
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded( $(function () {
$('#<%= txtAuditduedate.ClientID %>').datepicker(
{ minDate: 0, changeMonth: true, changeYear: true });
}););
</script>
对不起,语法错误,就像一把钥匙
见这个讨论:
Date picker is not working with update panel
并查看此博客jQuery Datepicker does not work after Ajax Partial Postback