日历扩展程序无法正常工作

时间:2012-06-19 14:41:33

标签: asp.net

我需要在addnew链接点击时将编辑面板显示为数据网格的第二行。为此,我采取了一个设置display:none的div。我可以在addnew链接点击时显示第二行。现在实际问题就开始了。

这个div有一个文本框,它与日历扩展器绑定,在文本框点击时表现为claendar。但是当将不可见div的html插入第二行网格时,日历不会显示。如果有人需要代码以便更好地理解问题,请告诉我。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分: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>

我希望这会有所帮助。

答案 1 :(得分: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>