使用Javascript页面循环ASP .NET用户控件

时间:2013-10-31 11:20:47

标签: c# jquery asp.net

我有一个简单的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中编写所有代码,它就能完美运行。我知道它与页面生命周期有关,但无法弄清楚是什么?请帮忙!!那么正确的写作方式应该是什么......

2 个答案:

答案 0 :(得分: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");
    })
});

答案 1 :(得分:1)

您的代码很好,它应该与没有usercontrol的情况相同。问题是你不需要回发,所以在return false;

之后写alert("2");

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