2013-04-01 62 views
0

我想通过javascript函数在ascx页面中调用服务器端方法。此方法在aspx页面中工作。它似乎没有调用JavaScript函数,但隐藏的按钮确实调用了服务器端方法。Javascript函数调用服务器端方法不起作用

<div runat="server"> 
<script type="text/javascript"> 

    function WebDatePicker_DayChange(sender, eventArgs) 
    { 
     document.getElementById("HiddenField3").value = eventArgs.get_value(); 
     var btn = document.getElementById("Button2"); 
     btn.click(); 
    } 
</script></div> 


<ig:WebDatePicker runat="server" ID="WebDatePicker1" DropDownCalendarID="webMonthCalendar" DisplayModeFormat="MM/dd/yyyy" EditModeFormat="MM/dd/yyyy" EditMode="CalendarOnly" Nullable="False" AlwaysInEditMode="False" HorizontalAlign ="Center" >     
        <ClientSideEvents ValueChanged="WebDatePicker_DayChange" ></ClientSideEvents>    
       </ig:WebDatePicker> 

       <ig:WebMonthCalendar runat="server" ID="webMonthCalendar" Culture="en-us" FooterContent="Today: {0:d}" 
        EnableWeekNumbers="false" 
        ChangeMonthToDateClicked="true" 
        EnableMonthDropDown="True" 
        EnableYearDropDown="True"> 
       </ig:WebMonthCalendar>  
       <input type="button" id="Button2" style="display:none" runat="server" onserverclick="WebDatePicker_DayChange" /> 
       <asp:HiddenField ID="HiddenField3" runat="server" Value="" /> 
+1

用户控制元件有不同的ID ..查看网页源代码的浏览器,并检查元素的ID和尝试[呼叫的一样... – Pandian

+0

可能重复ASP.NET函数从Javascript?](http://stackoverflow.com/questions/3713/call-asp-net-function-from-javascript) –

+0

问题是,我的js函数根本没有被调用。这工作在一个aspx页面,但不在这里工作。 – zms6445

回答

2

要触发,你需要运行下面的JavaScript代码的方法:

__doPostBack('Button2','') 

更换btn.click();与上面的代码。

这是一个Asp.Net生成的方法 [docs]

+0

我在哪里可以写我的代码? – zms6445

+0

replace btn.click();与该代码。 – Joe

+0

已经试过了。该功能从来没有被调用的第一个地方... – zms6445