2012-06-19 54 views
0

我有一個要求,當addnew鏈接點擊時,將編輯面板顯示爲數據網格的第二行。爲此,我採取了設置顯示的div:無。點擊添加新鏈接後,我可以顯示爲第二行。現在實際的問題開始了。日曆擴展不起作用

這個div得到了一個文本框,它與日曆擴展器綁定在一起,在文本框中單擊時表現爲claendar。但當不可見div的html插入爲網格的第二行時,日曆不顯示。請讓我知道是否有人需要更好地瞭解問題的代碼。任何幫助將不勝感激。

回答

0

在你的gridview中放置一個模板字段而不是div。使模板化的領域舉行一個文本框和日曆擴展。

<asp:GridView ID="GridView1" runat="server"> 
    <Columns> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:TextBox ID="textbox1" runat="server"></asp:TextBox> 
       <asp:CalendarExtender ID="CalendarExtender1" TargetControlID="textbox1" runat="server"> 
       </asp:CalendarExtender> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

,但如果你想它,當你插入你應該把

<asp:GridView ID="GridView1" runat="server"> 
    <Columns> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:TextBox ID="textbox1" runat="server"></asp:TextBox> 
       <asp:CalendarExtender ID="CalendarExtender1" TargetControlID="textbox1" runat="server"> 
       </asp:CalendarExtender> 
      </ItemTemplate> 
      <InsertItemTemplate> 
       <asp:TextBox ID="textbox1" runat="server"></asp:TextBox> 
       <asp:CalendarExtender ID="CalendarExtender1" TargetControlID="textbox1" runat="server"> 
       </asp:CalendarExtender> 
      </InsertItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

我希望這有助於。

+0

我不能在我的項目的這個階段改變網格,因爲這是按照我上面描述的那樣工作的。是否有任何可能使日曆擴展工作,如果它從設置顯示的div取得:無。 – user1466710

+0

發佈你的代碼會幫助我,我不知道你現在的網格是什麼樣的。 –

+0

感謝您的幫助。我知道上面說的一個,但在我的情況下,我必須從div設置爲無顯示。我通過抓取日曆的行爲ID並調用show方法並更改日曆的頂部和左側位置以使其出現在目標控件下方來解決問題。非常感謝你的幫助。 – user1466710

0
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="AjaxControlToolkit" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script src="jquery-1.4.1.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     function AddCalendars() 
     { 

      //The last parameter should be the TargetControl's id. If you use "TextBox1", the TextBox1 would be associated. 
      var elem = $(".deneme"); 

      for (var a = 0; a < elem.length; a++) 
      { 
       if ($find("CalendarExtender" + elem[a].id)) 
       { 
        $find("CalendarExtender" + elem[a].id).dispose(); 
       } 
      } 
      for (var i = 0; i < elem.length; i++) 
      { 
       $create(AjaxControlToolkit.CalendarBehavior, { "id": "CalendarExtender" + elem[i].id }, null, null, elem[i]); 
      } 

     } 
    </script> 

</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:ScriptManager ID="ScriptManager1" runat="server" /> 
     <%--the dummy calendar which is used to download the related script file.--%> 
     <asp:TextBox ID="dummyTextBox" runat="server" Style="display: none"></asp:TextBox> 
     <AjaxControlToolkit:CalendarExtender ID="dummyCalendarExtender" runat="server" Enabled="True" 
      TargetControlID="dummyTextBox"> 
     </AjaxControlToolkit:CalendarExtender> 
     <%--the dummy calendar which is used to download the related script file.--%> 
     <asp:Button ID="Button1" OnClientClick="AddCalendars();return false" runat="server" 
      Text="CreateCalendarFromClient" /><br /> 
     input:<input id="deneme1" type="text" class="deneme" /><br /> 
     <br /> 
     <br /> 
     <br /> 
     <br /> 
     <br /> 
     <br /> 
     <br /> 
     TextBox: 
     <asp:TextBox ID="deneme2" runat="server" cssclass="deneme" ClientIDMode="Static"></asp:TextBox> 
    </div> 
    </form> 
</body> 
</html>