0

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

此 div 有一个文本框,该文本框与日历扩展器相关联,在文本框单击时充当 claendar。但是当不可见 div 的 html 作为网格的第二行插入时,日历没有显示。请让我知道是否有人需要代码以更好地理解问题。任何帮助将不胜感激。

4

2 回答 2

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>
于 2012-07-16T11:39:45.427 回答
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>

我希望这有帮助。

于 2012-06-19T15:00:44.813 回答