0

ListView コントロールを参照して、データソースを割り当てようとしています。しかし、奇妙なことに、「Me.lvResults」をデバッグすると「Nothing」になります。これは何が原因でしょうか? クラス Default の一部である BindDataSearch() 関数を呼び出すメソッドに傾いています。私は ajax で Search() を呼び出すため、このように機能するコードが本当に必要ですが、誰かがより良い方法を推奨できる場合は、提案を受け付けています。お時間をいただき、誠にありがとうございました。

Imports System.Web.Services

Public Class _Default
   Inherits System.Web.UI.Page



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

   End Sub


   <WebMethod()>
   Public Shared Sub Search(ByVal StartDate As String, ByVal EndDate As String, ByVal ClassName As String)
    Try
        'Get Search Results
        Dim _DataHelper As New DataHelper
        Dim dt As New DataTable

        dt = _DataHelper.ClassSearch(StartDate, EndDate, ClassName)

        'Bind Search Results to DateGrid
        Dim _ClassSearch As New _Default
        _ClassSearch.BindDataSearch(dt)
     Catch ex As Exception
        Dim strError As String = ex.ToString()
     End Try
    End Sub


    Public Sub BindDataSearch(ByVal dt As DataTable)
     Me.lvResults.DataSource = dt
    End Sub

End Class
4

1 に答える 1

0

もちろん。これは共有メソッドです。つまり、メソッドが呼び出されたときにページのインスタンスはありません。

JSON を使用してデータをページに戻し、JQuery を使用してクライアント側でオブジェクトを作成するメソッドを調べることができます。しかし、WebMethod を使用してデータバインディングを行う方法はありません。

于 2013-03-05T17:17:08.090 に答える