Web Methods работает с кнопкой HTML, но не с кнопкой asp: - PullRequest
0 голосов
/ 01 октября 2009

Я смотрю на код в этой статье о веб-методах, и я пытался реализовать его. Статья работает, как задумано, но когда я меняю кнопку HTML на кнопку asp:, я получаю разные результаты.

КОД позади:

    [WebMethod]
    public static string GetCurrentDate()
    {          
        return DateTime.Now.ToString();
    }

Страница aspx:

ЯШ:

<script type="text/javascript">
    function UpdateTime() {
        $get('Label6').innerHTML = PageMethods.GetCurrentDate(OnSucceeded,
                                   OnFailed); 
 }

 function OnSucceeded(result, userContext, methodName) {
   $get('Label6').innerHTML = result; 
 }

 function OnFailed(error, userContext, methodName) {
   $get('Label6').innerHTML = "An error occured.";
 }
</script>

и другая разметка

<form id="form1" runat="server">
    <asp:ScriptManager EnablePageMethods="true" 
        ID="ScriptManager2" runat="server">
    </asp:ScriptManager>

<div id="usingWebMethods">
        <asp:Label runat="server" 
            Text="Using WebMethods" 
            ID="Label5" />
        <br />

        <asp:Label 
            runat="server" 
            Text="Web Method Update!" 
            ID="Label6" />
        <asp:Button ID="Button3" 
            runat="server" 
            Text="Postback Update" 
            OnClientClick="UpdateTime();" 
            UseSubmitBehavior="False" />      
        <input type="button" 
            id="Button4" 
            value="Web Method Update" 
            onclick="UpdateTime();" />


</div>
</form>

Я заметил 2 вещи с кнопкой. Кнопка возвращает произошедшую ошибку, и хотя метка изменяет состояние просмотра, оно не обновляется.

Почему возникают эти 2 проблемы и что я могу сделать, чтобы решить их?

1 Ответ

1 голос
/ 01 октября 2009

ViewState только обновления при обратной передаче. Вы используете настоящий AJAX. У него нет возможности узнать, что ты сделал.

...