2012-04-18 1 views
0

Я пытаюсь создать календарный календарь всплывающих окон. Поэтому, когда пользователь нажимает кнопку изображения, календар должен всплывать, а выбранная дата из календаря должна быть привязана к текстовому полю.Как связать выбранное значение календаря с txt bx

Это мой ASPX код:

<asp:TextBox ID="txtBxDate" runat="server" MaxLength="10" Width="75px"> 
</asp:TextBox> 
<asp:ImageButton ID="ImageButton1" runat="server" 
ImageUrl="~/images/toolbox.gif" /> 
<asp:PopupControlExtender ID="ImageButton1_PopupControlExtender" runat="server" 
DynamicServicePath="" Enabled="True" ExtenderControlID="" 
PopupControlID="Panel1" Position="Bottom" TargetControlID="ImageButton1"> 
</asp:PopupControlExtender> 
<asp:Panel ID="Panel1" runat="server" Width="200px"> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
<ContentTemplate> 
<asp:Calendar ID="Calendar1" runat="server" 
onselectionchanged="Calendar1_SelectionChanged"></asp:Calendar> 
</ContentTemplate> 
</asp:UpdatePanel> 
</asp:Panel> 

Мой код Сзади:

protected void Calendar1_SelectionChanged(object sender, EventArgs e) 
{ 
    txtBxDate.Text = Calendar1.SelectedDate.ToString(); 
} 

Но когда я выбрал дату из календаря, выбранная дата была не привязана к какому текстовое поле. Что я здесь делаю неправильно? или как я могу это исправить?

+0

Да ... это странно. Ответ обычно устанавливает значение «AutoPostBack» равным true, но такого свойства для элемента управления «Календарь» нет. Возвращается ли страница при изменении выбора? –

ответ

2

Причина, по которой это не обновление, заключается в том, что txtBxDate находится за пределами UpdatePanel. Либо установите txtBxDate на панель обновления с календарем, либо поместите его в отдельную панель обновления.

EDIT

После проверки коды немного более внимательно, это выглядит, как вы пытаетесь вручную создать функциональные возможности, которые уже встроены в Calendar управления AJAX Toolkit.

Смотрите здесь: Calendar Sample

+0

это сработало. Thnx. – Sas

+1

Добро пожаловать. Рад, что это сработало :) –

1

Кажется, что у вас есть ваши targetcontrolid и popupcontrolid перепутаны. Я думаю, что это должно быть:

PopupControlID="ImageButton1" TargetControlID="txtBxDate" 

Вы можете избавиться от кода, задающего выбранную дату в текстовом поле. Расширитель календаря должен позаботиться об этом автоматически.

+0

Я думаю, что вы сбиваете его пример с «CalendarExtender», и в этом случае вы были бы правы. OP просто использует всплывающее окно для отображения обычного элемента управления календарем. Которая в размышлении об этом заставляет меня задаться вопросом, почему OP не просто использует расширитель календаря, так как именно этого он и пытается достичь. –

+0

@JamesJohnson yep, вы правы, почему-то я думал, что он использует расширитель календаря, который действительно является инструментом для этого, если вы используете AjaxControlToolkit. – Icarus

+0

Смутил меня тоже поначалу :) –

Смежные вопросы