【问题标题】:AjaxToolKit CalendarExtender ProblemsAjaxToolKit CalendarExtender 问题
【发布时间】:2011-11-02 17:58:25
【问题描述】:

在我的摘要页面中,我有两个 CalendarExtender 控件,可以让某人选择开始日期和结束日期进行数据库查询。

在我的 Summary.aspx 页面的头部,我有以下声明:

<%@ MasterType VirtualPath="~/Site.Master" %>
<%@ Page Title="ACP Sheet Metal - Summary" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Summary.aspx.cs" Inherits="AcpSheetMetal.Summary" UICulture="es" Culture="es-MX" %>
<% @Import Namespace="System.Globalization" %>
<%@ Register TagPrefix="asp" Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit"%>

对于页面本身,我有一个 ToolkitScriptManager、两 (2) 个 TextBox 控件、两个 CalendarExtender 控件和一个 GridView 控件:

<ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager2" runat="server" EnableScriptGlobalization="true" EnableScriptLocalization="true" />
<asp:TextBox ID="txtStartDate" runat="server" />
<asp:CalendarExtender ID="calExStartDate" runat="server" TargetControlID="txtStartDate" OnClientShown="ChangeCalendarView" OnClientDateSelectionChanged="checkDate" />
<asp:TextBox ID="txtEndDate" runat="server" />
<asp:CalendarExtender ID="calExEndDate" runat="server" TargetControlID="txtEndDate" OnClientShown="ChangeCalendarView" OnClientDateSelectionChanged="checkDate" DaysModeTitleFormat="MM/dd/yyyy" DefaultView="Months" Enabled="True" TodaysDateFormat="MMMM dd, yyyy" />
<asp:GridView ID="summaryGridView" runat="server" />

在 C# 代码的Page_Load 事件中,我放置了以下内容:

protected void Page_Load(object sender, EventArgs e) {
  MasterPage = (SiteMaster)Page.Master;
  if (!Page.IsPostBack) {
    calExEndDate.TodaysDateFormat = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern;
    calExStartDate.TodaysDateFormat = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern;
  }
}

那么,为什么我的日历控件不起作用?日历中没有值,语言似乎是西班牙语。

【问题讨论】:

    标签: c# ajaxcontroltoolkit calendarextender


    【解决方案1】:

    只需像这样在 ScriptManager 中添加 EnableScriptGlobalization="true":

    【讨论】:

      【解决方案2】:

      您的语言是西班牙语,我相信这是因为您的 UICultureUICulture="es"(西班牙语)和 Culture="es-MX"(西班牙语)。

      在您的标记上看到这一行:

      <%@ Page Title="ACP Sheet Metal - Summary" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Summary.aspx.cs" Inherits="AcpSheetMetal.Summary" UICulture="es" Culture="es-MX" %>
      

      你的标记的其余部分在我看来没问题。

      【讨论】:

      • 这就是我在网上找到的所有示例都说要使用的。我应该把它改成什么?甚至您的示例也显示UICulture="es" Culture="ex-MX"。我们英语一定很难! :)
      • @jp2code:您可以安全地从您的页面中删除这 2 个部分 (UICulture="es" Culture="es-MX")。它应该使用服务器上的默认文化(你的情况是英语)
      • 好的,现在我有英语了。对于另一个 +1 和标记的答案,你能告诉我为什么我的日历控件里面没有日期吗?
      • @jp2code:老实说,我不确定原因,但我会从后面的代码中删除:calExEndDate.TodaysDateFormat = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern;calExStartDate.TodaysDateFormat = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern;,并从ToolscriptManager标记中删除:EnableScriptGlobalization="true" EnableScriptLocalization="true"EnableScriptLocalization="true"看看它有什么效果。我很久很久以前就用过AjaxControlToolkit(我现在更喜欢jQuery UI)。
      • @jp2code:看看这个:jqueryui.com/demos/datepicker 您需要做的就是在您的 aspx 页面上包含 jQuery javascript 库。我可以提供一个完整的工作示例供您参考,但现在不能,因为我正在离开,不幸的是。如果到我回家时你还没有弄清楚如何使用 jQuery 来做这件事,我将为你提供示例。祝你好运!
      猜你喜欢
      • 1970-01-01
      • 2010-10-23
      • 2012-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多