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