ここで、ページからコントロールを取得する方法について、MSDN でいくつかの調査を行いました。 http://msdn.microsoft.com/en-us/library/yt340bh4(v=vs.100).aspx
また、静的コンテキストからページ参照を取得する方法について調査しました。 静的クラスから Page の現在のインスタンスにアクセスする
しかし、ページ コントロールのリストをループしようとすると、null が表示され、グリッドビューが表示されません。
以前にデータベース呼び出しで入力したデータテーブルにデータバインドしているため、今はそのグリッドビューが必要です。内部でこれを行っている静的メソッドは WebMethod であるため、次のようになります。
[WebMethod(EnableSession = true)]
[ScriptMethod]
public static string viewApps(){}
これが私の静的メソッドのC#コードです
GridView applications = new GridView();
Page masspage = HttpContext.Current.CurrentHandler as Page;
foreach(Control childcontrol in masspage.Controls)
{
if(childcontrol is GridView){
applications = childcontrol as GridView;
}
}
applications.DataSource = dt;
applications.DataBind();
簡単だと思っていたのですが、そうでもないようです。ID に基づいて GridView への参照を取得する方法があれば、それも役立ちます。
これが私のasp.netコードです。マスターページから継承したページです。
<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="true" UpdateMode="Always">
<ContentTemplate>
<asp:GridView ID="ApplicationsGridView" runat="server"
AutoGenerateColumns="True" >
<%--Styling and column info omitted --%>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>