如何访问[WebMethod]方法中的页面控件?

时间:2014-11-03 07:34:28

标签: asp.net

我正在使用Ajax从数据库中调用一些方法 此方法从页面获取参数 并从数据库中获取一些值 我想通过访问Web方法中的这些控件将结果填充到页面控件。

以下是我的代码。我正在使用可折叠面板扩展器。在点击事件上它崩溃了&应该调用后面编写的verifyFunction方法。

 <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" EnablePageMethods="True"></asp:ToolkitScriptManager>

<asp:Panel ID="Panel1" runat="server">
</asp:Panel>
<asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton>

 <asp:CollapsiblePanelExtender ID="cpeSOP" runat="Server"      CollapseControlID="LinkButton1"
    CollapsedSize="0" Collapsed="True" CollapsedImage="~/imgages/addRow.gif"
   ExpandControlID="LinkButton1" ExpandDirection="Vertical" ExpandedImage="~/imgages/addRow.gif"
   ImageControlID="Image1" SuppressPostBack="true" TargetControlID="Panel1">

 <!-- JAVASCRIPT CONTENT -->
 <script type="text/javascript">
         function pageLoad(sender,args){

$find("collapsibleBehavior").add_expandComplete( expandHandler );

$find("collapsibleBehavior").add_collapseComplete( collapseHandler );

}

function expandHandler( sender  , args ){

    alert('I have expanded');
    // NewPlanBudget.aspx/verifyFunction
    $.ajax(
        {
            url: "NewPlanBudget.aspx/verifyFunction",
            data: "flag=1",
            success: function (msg) {
                if (msg.d) {
                    alert("Sucess");
                }
            }
            }); 
}

function collapseHandler( sender  , args ){

alert('I have collapsed');


}

背后的代码是

[的WebMethod]

    protected void Page_Load(object sender, EventArgs e)
    {
        cpeSOP.BehaviorID = "collapsibleBehavior";
    }

    public static void verifyFunction()
    {
         LinkButton1.Text = "Hello";

     }

2 个答案:

答案 0 :(得分:0)

我认为您无法在Web方法中访问页面控件,但您可以将结果返回到ajax并且必须获得结果

并发布您的示例代码,我不知道您为什么要在网络方法中调用页面加载,

并且脚本必须是

$.ajax(
    {
        url: "NewPlanBudget.aspx/verifyFunction",
        data: {flag="1"},
        success: function (msg) {
            if (msg.d) {
                alert("Sucess");
            }
        }
        }); 

并且您必须在web-method中获取值

 public static void verifyFunction(string flag)
{

 }

并在设计页面本身为链接按钮命名

作为

<asp:LinkButton ID="LinkButton1" Text="Hello" runat="server">LinkButton</asp:LinkButton>

答案 1 :(得分:-1)

Data Space Total