获取静态函数内的控件

时间:2010-01-19 17:02:46

标签: c# asp.net

我使用webservice从javascript调用codebehind中的函数。

function  GetAdmissionType()
        {
            InitComponents();
            var type="";
            type=document.getElementById(dlAdmissionType.id).value;
             document.getElementById(hdnAdmissionType.id).value=document.getElementById(dlAdmissionType.id).value;

             else if(type=="2")
             {
                   InitComponents();
                   ViewResettingPanel()
                   makeFavorite(1);

             }
    }



       function makeFavorite(id) {
    PageMethods.SaveInfo(id, CallSuccess, CallFailed);
}

// This will be Called on success
function CallSuccess(res, id) {
alert(destCtrl);
}

// This will be Called on failure
function CallFailed(res) {
alert(res.get_message());
}

以下是我在codebehind中的代码

[System.Web.Services.WebMethod]
    public static void SaveInfo(String Id)
    {

       //to get textbox in form
    }

问题是我没有在SaveInfo中获取aspx页面中的控件。任何人都可以帮助访问saveinfo中的表单中的控件吗?

2 个答案:

答案 0 :(得分:1)

静态页面方法无法获取页面的控制树。 (他们没有收到ViewState)

您需要使用UpdatePanel

您可以使用常规asp:Button事件在<div style="display:none>内置Click,按钮触发UpdatePanel,然后使用Javascript模拟点击按钮。

或者,您可以将您需要的控件值作为参数发送到Javascript中的页面方法。这比使用UpdatePanel更有效。

答案 1 :(得分:0)

你不能。

对于页面类的所有实例,您的WebMethod都是静态的,这意味着它只存在一次。它没有您网页的任何单个实例的概念。

如果您需要回发页面,则需要实际使用回发,而不是网络服务电话。