0

我有一个非常简单的 asp .net 用户控件,它有一个提交按钮来隐藏日历服务器端控件。这是代码:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs"     
    Inherits="WebApplication5.WebUserControl1" %>

<script type="text/javascript" src="scripts/jquery-1.4.1.min.js"></script>
<script language="javascript" type="text/javascript">
// <![CDATA[

    function Submit1_onclick() {
        alert("1");
        $('#<%=Calendar1.ClientID%>').hide();
        alert("2");
    }

// ]]>
</script>

<input id="Submit1" type="submit" value="submit" onclick="return Submit1_onclick()" />
<asp:Calendar ID="Calendar1" runat="server"></asp:Calendar>

现在我将此用户控件包含在 asp .net 应用程序的默认页面中。这是默认页面的代码:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master"         AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="WebApplication5._Default" %>
<%@ Register TagPrefix="CP" TagName="TitleBar" Src="WebUserControl1.ascx" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
       <CP:TitleBar runat="server" />
</asp:Content>

我可以在页面中看到日历控件,当我单击提交时,它确实会隐藏一会儿,然后重新出现。如果我在 default.aspx 中编写所有代码,它会完美运行。我知道它与页面生命周期有关,但不知道是什么?请帮忙!!还有什么应该是写这个的正确方法......

4

2 回答 2

2

提交刷新页面,使用按钮代替。

改变这个:

<input id="Submit1" type="submit" value="submit" onclick="return Submit1_onclick()" />

对此:

<input id="Submit1" type="button" value="submit" />

$(function(){
    $('#Submit1').click(function(){
        alert("1");
        $('#<%=Calendar1.ClientID%>').hide();
        alert("2");
    })
});
于 2013-10-31T11:39:26.850 回答
1

您的代码很好,它应该与没有用户控件的情况相同。问题是你不需要回发,所以return false;在之后写alert("2");

IE

   function Submit1_onclick() {
    alert("1");
    $('#<%=Calendar1.ClientID%>').hide();
    alert("2");
    return false;
}
于 2013-10-31T11:40:59.713 回答