为什么在C#中的updatepanel内部没有调用webmethod [英] Why webmethod is not called inside updatepanel in C#

查看:59
本文介绍了为什么在C#中的updatepanel内部没有调用webmethod的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从json调用web方法,但是当在表单中使用更新面板时,web方法不会从json调用。我必须使用更新面板。



这是我的客户端代码



I Want call web method from json,but web method does not call from json,when using update panel in form.I have to use update panel.

Here is my code of client side

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script type="text/javascript" src="http://cdn.jsdelivr.net/json2/0.1/json2.js"></script>




<script type="text/javascript">
        $(function () {
            $("[id*=btnSave]").bind("click", function () {
                
                var event1 = {};
                event1.EventDate = $("[id*=txtEventDt]").val();
                event1.Description = $("[id*=txtEventDesc]").val();
                $.ajax({
                    type: "POST",
                    url: "Default3.aspx/SaveEvent",
                    data: '{event1: ' + JSON.stringify(event1) + '}',
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (response) {
                        $find("mpe").hide();
                        clear();
                        __doPostBack('hdText', 'JavaScript');
                    }
                });
                return false;
            });
        });
        //==== Method to clear input fields
        function clear() {
            $("#txtEventDt").val("");
            $("#txtEventDesc").val("");                      
        }
    </script>







服务器端代码






Server Side Code

[WebMethod]
   [ScriptMethod]
   public static void SaveEvent(Event event1)
   {
       try
       {
           string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
           using (SqlConnection con = new SqlConnection(constr))
           {
               using (SqlCommand cmd = new SqlCommand("INSERT INTO Event VALUES(@EventDate, @Description)"))
               {
                   cmd.CommandType = CommandType.Text;
                   Default3 obj = new Default3();
                   string eventdate=obj.changeYYYYMMDD(event1.EventDate.ToString());
                   cmd.Parameters.AddWithValue("@EventDate", eventdate);
                   cmd.Parameters.AddWithValue("@Description", event1.Description);
                   cmd.Connection = con;
                   con.Open();
                   cmd.ExecuteNonQuery();
                   con.Close();

               }
           }
       }
       catch (Exception ex)
       {
       }
   }







现在回发部分






Now the postback part

protected override void Render(System.Web.UI.HtmlTextWriter writer)
    {

        ClientScript.RegisterForEventValidation("hdText", "JavaScript");

        base.Render(writer);

    }
    protected void hdText_Click(object sender, EventArgs e)
    {
    }





我尝试了什么:



我尝试过使用客户端的回发。



任何帮助都将非常感激。

请....回复



What I have tried:

I have tried by using postback from client side.

Any help will be very appreciated.
Please.... have a reply

推荐答案

function (){


[id * = btnSave])。bind( click function (){

var event1 = {};
event1.EventDate =
("[id*=btnSave]").bind("click", function () { var event1 = {}; event1.EventDate =


[id * = txt EventDt])VAL();
event1.Description =
("[id*=txtEventDt]").val(); event1.Description =


这篇关于为什么在C#中的updatepanel内部没有调用webmethod的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆