2010-04-08 96 views
0

我正在尝试使用来自多个来源的代码构建我自己的日期选择器。具体来说,我现在试图让asp:按钮显示/隐藏日历。ASP按钮调用JavaScript函数

我在做什么错?

myDate.ascx

<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="myDate.ascx.vb" 
    Inherits="Website.myDate" %> 

<script language="javascript" type="text/javascript"> 
    function toggleCalendar(myID) { 
     var obj = document.getElementById(myID) 
     obj.style.display = (obj.style.display == "none") ? "" : "none"; 
    } 
</script> 

<asp:TextBox ID="dateText" runat="server" > </asp:TextBox> 
<asp:Button ID="dateBtn" runat="server" UseSubmitBehavior="false" Text="x" /> 
<asp:Calendar ID="dateCal" runat="server" > 

</asp:Calendar> 

myDate.ascx.vb为按钮

Partial Public Class myDate 
    Inherits System.Web.UI.UserControl 

    Protected Sub Page_Load 
     (ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     'Add OnClick event to call JavaScript to toggle calendar display' 
     calBtn.Attributes.Add("OnClick", "toggleCalendar(" & cal.ClientID & ")") 
    End Sub 

End Class 

HTML代码(从浏览器)

<input type="button" name="ctl03$calBtn" value="x" 
     onclick="toggleCalendar(ctl03_cal);__doPostBack('ctl03$calBtn','')" 
     id="ctl03_calBtn" /> 

回答

1

由于您的操作是所有客户端。如何定义一个普通的HTML按钮?

<input type="button" value="X" onclick='toggleCalendar("<%=cal.ClientID%>");'/> 
+0

谢谢!完美工作。我刚开始时(在进行用户控制之前),我只是不知道<%=CODE%>语法。 – Steven 2010-04-08 16:50:39

0

它看起来像你需要添加一个“返回false”;语句添加到您的attributes.add行。

calBtn.Attributes.Add("OnClick", "toggleCalendar(" & cal.ClientID & "); return false;") 

这应该防止在您的webForm触发回发事件。

-2

是ASP只是使用的OnClientClick()代替的OnClick() 享受:)

相关问题