2013-03-13 111 views
1

我有兩頁與'UpdatePanel,ScriptManager的和CalendarExtender , in one of them, the CalendarExtender`工作正常相同的代碼,但在另一方面,它給我這個錯誤:CallendarExtender不是已知元素

CalendarExtender is not a known Element

這是我在aspx

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolKit" TagPrefix="asp" %> 

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" runat="server"> 
    <div id="conteudo" style="text-align: left">      
     <fieldset id="fieldset" style="width:730px; margin-left: -200px"> 
     <legend style="text-align:center;"><b>Detalhes do Chamado</b></legend>         
     <div id="DetalhesChamado"> 
     <asp:ScriptManager ID="ScriptManager1" runat="server" EnableScriptGlobalization="true" EnableScriptLocalization="true" EnablePartialRendering="true"></asp:ScriptManager> 
     <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 
      //Here is a gridview 
      <asp:CalendarExtender runat="server"></asp:CalendarExtender> 

但仍然給錯誤代碼......

--update 2--

現在,我得到這個錯誤:
The TargetControlID of 'CalendarExtender1' is not valid. A control with ID 'TxtPrevisao' could not be found.

我的新代碼:

<asp:TemplateField> 
    <ItemTemplate> 
     <asp:TextBox ID="TxtPrevisao" runat="server" Width="115px"></asp:TextBox> 
     <asp:CalendarExtender ID="CalendarExtender1" runat="server" Format=" dd ,MMMM ,yyyy" TargetControlID="TxtPrevisao" PopupButtonID="TxtPrevisao" CssClass="MyCalendar"> 
     </asp:CalendarExtender> 
    </ItemTemplate> 
</asp:TemplateField> 
+0

更新我的回答 – 2013-03-13 14:57:30

回答

3

更改的Ajax工具包的標籤前綴的看它的工作

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="act" %> 

而且也:

<act:CalendarExtender runat="server"></act:CalendarExtender> 

asp用於Asp.Net組件,如UpdatePanel

------------ Update 2 ----------------- -

到新的錯誤,你不能分配PopupButtonID到文本框,你需要的ImageButton

<asp:ImageButton ID="btnCalenderPopup" runat="server" ImageUrl="App_Themes/Standard/Img/calendar.png" CausesValidation="False" /> 

不過,我堅持,你將需要指定標籤前綴的接過 - 正確安裝,您需要按照SanjeevRai所說的正確引用程序集

+0

我會盡力,但正如我所說,在其他頁面,使用相同的代碼,它的工作是完美的......它會是什麼? – Ghaleon 2013-03-13 12:26:04

+0

錯誤發生後,您嘗試過嗎? – 2013-03-13 12:49:36

+0

現在我得到'沒有找到彙編'AjaxToolkit'你錯過了一個程序集...'omg我越來越瘋了爲什麼只在這個頁面上它不工作 – Ghaleon 2013-03-13 12:57:08

1

您必須將「Ajaxtoolkit」dll的引用添加到您的項目中。它似乎沒有得到'AjaxToolkit'DLL的正確引用。

您可以通過右鍵單擊網站並選擇「屬性頁」選項來檢查項目的參考。那麼它會告訴你所有的參考。從這裏你可以檢查'Ajaxtoolkit'引用是否在你的項目中退出。

如果您的項目中不存在Ajaxtoolkit引用,那麼您將不得不首先添加此引用!

------------更新2 -------------------

看你的代碼後,我得到了問題。

其實你在gridview中使用calenderextender和它的TargetControlID文本框,所以它沒有得到textbox的id。它不會直接在aspx頁面上標識子控件的id。 您需要在GridView的RowDataBound事件內的運行時附加'TargetControlID'和'PopupButtonID'。

下面是代碼,您可以在您使用aspx.cs文件中的示例:

void myGridView_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     TextBox txt = (TextBox)e.Row.FindControl("TxtPrevisao"); 
     CalendarExtender Calendar1 = (CalendarExtender)e.Row.FindControl("CalendarExtender1"); 
     Calendar1.TargetControlID=txt.ID; 
     Calendar1.PopupButtonID=txt.ID; 
    } 
} 

而且英寸aspx頁面從calenderextender即附加RowDataBound事件電網和刪除「的TargetControlID」和「PopupButtonID」屬性

<asp:TemplateField> 
    <ItemTemplate> 
     <asp:TextBox ID="TxtPrevisao" runat="server" Width="115px"></asp:TextBox> 
     <asp:CalendarExtender ID="CalendarExtender1" runat="server" Format=" dd ,MMMM ,yyyy" CssClass="MyCalendar"> 
     </asp:CalendarExtender> 
    </ItemTemplate> 
</asp:TemplateField> 
+0

我加了,仍然沒有任何反應,但什麼是正確的順序'scriptManager,updatepanel'?根據我寫的順序,它會引發錯誤... – Ghaleon 2013-03-13 12:24:32

相關問題