2013-04-01 153 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