【问题标题】:Javascript function to call server side method is not working调用服务器端方法的 Javascript 函数不起作用
【发布时间】:2013-04-02 00:10:51
【问题描述】:

我正在尝试通过 javascript 函数在 ascx 页面中调用服务器端方法。此方法在 aspx 页面中有效。它似乎没有调用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=""  />

【问题讨论】:

  • 用户控件元素有不同的ID..在浏览器中查看页面源并检查元素的ID并尝试相同...
  • 问题是我的js函数根本没有被调用。这在 aspx 页面中有效,但在这里不起作用。
  • Pandian 解决了我的问题。加载页面时,控件 ID 正在更改。学到了一些新东西。

标签: javascript asp.net ascx


【解决方案1】:

要触发该方法,您需要运行以下 JavaScript 代码:

__doPostBack('Button2','')

用上面的代码替换btn.click();

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 2011-08-23
    • 1970-01-01
    • 2018-10-19
    • 2011-12-09
    • 2011-03-13
    • 1970-01-01
    相关资源
    最近更新 更多