从Web服务动态添加控件到页面

时间:2012-08-20 10:33:24

标签: c# asp.net vb.net

如果我从页面加载中调用webservise,如何让我的ASP.net webservice将控件添加到我的页面?

以下是我的代码的简化版本。感谢

''''''''''''''''''page code behind'''''''''''''''''''''''''''''''''''''''''''''''
    Partial Class _Default
        Inherits System.Web.UI.Page

        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

            Dim m As New myWebService.Service

            m.DoThis()


        End Sub
    End Class



''''''''''''''''''''''Web service'''''''''''''''''''''''''''''''''''''''


Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols

<WebService(Namespace:="http://test.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class Service
     Inherits System.Web.Services.WebService

    <WebMethod()> _
    Public Function DoThis() As String


        Dim pg As Page = DirectCast(HttpContext.Current.Handler, Page)

        Dim txtb As HtmlButton = New HtmlButton()

        txtb.InnerText = "my bu-----tton"

        pg.Form.Controls.Add(txtb)

        Return "added"
    End Function

End Class

1 个答案:

答案 0 :(得分:3)

webserivce的工作不是控制页面。

使用您的web服务来决定是否应该向页面添加一些控件,但是将控件添加到Page的代码必须在Page内。

如果是通用代码,可以将其添加到公共类或辅助函数中。

将Web服务视为可以通过Web调用,传递参数和接收已处理值的方法。

向页面添加控件并不能很好地满足Web服务的目的。