Проблемы с AjaxToolKit CalendarExtender

На моей странице «Сводка» у меня есть два элемента управления 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" />

В событии Page_Load в коде C # я разместил следующее:

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;
  }
}

Итак, почему мои элементы управления календарем не работают? В календарях нет значений, язык - испанский.

введите описание изображения здесь


person jp2code    schedule 02.11.2011    source источник


Ответы (2)


Ваш язык - испанский, и я считаю, что это так, потому что ваш UICulture UICulture="es" (ESpañol) и Culture="es-MX" (Español México).

Смотрите эту строку в своей разметке:

<%@ 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" %>

Остальная часть вашей разметки мне нравится.

person Icarus    schedule 02.11.2011
comment
Об этом говорят все примеры, которые я нашел в Интернете. На что мне его поменять? Даже ваш пример показывает UICulture="es" Culture="ex-MX". Нам должно быть трудно выучить английский! :) - person jp2code; 02.11.2011
comment
@ jp2code: вы можете безопасно удалить эти 2 части (UICulture = es Culture = es-MX) со своей страницы. Он должен использовать культуру по умолчанию на сервере (английский в вашем случае) - person Icarus; 02.11.2011
comment
Хорошо, теперь у меня есть английский. Для еще одного +1 и для отмеченного ответа, можете ли вы мне сказать, почему в моем элементе управления календарем нет дат внутри? - person jp2code; 03.11.2011
comment
@ 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). - person Icarus; 03.11.2011
comment
Как сделать вызов jQuery? :) - person jp2code; 03.11.2011
comment
@ jp2code: взгляните на это: jqueryui.com/demos/datepicker все, что вам нужно сделать включает библиотеку javascript jQuery на вашу страницу aspx. Я могу предоставить вам полный рабочий пример, но, к сожалению, не сейчас, так как я уже ухожу. Если к тому времени, как я вернусь домой, вы все еще не поняли, как это сделать с помощью jQuery, я предоставлю вам пример. Удачи! - person Icarus; 03.11.2011

Просто добавьте EnableScriptGlobalization = "true" в свой ScriptManager следующим образом:

person user3327993    schedule 19.02.2014