ユーザーコントロールにgridviewバインドがあり、ページのユーザーコントロールからそのグリッドビューにアクセスし、エクスポートを使用してExcelを実行したいと考えています。
usercontrolでアクセスするプロパティを作成しましたが、アクセスできません。
ページのユーザーコントロールからグリッドビューにアクセスするにはどうすればよいですか?
ExportToExcel メソッドをユーザー コントロールに書き込むか、パブリックなプロパティを作成してグリッドへの参照を返さないのはなぜですか。
public GridView MyGrid
{
get{ return this.GridView1;}
}
を使うのが好きinterface
です。
インターフェイスを作成して、Web ページに実装できます。また、ユーザーコントロールでインターフェイス オブジェクトを使用すると、インターフェイス メソッドを呼び出すことができます。
例: インターフェイス
public interface IExport
{
void Export();
}
あなたのウェブページ
public partial class _Default : System.Web.UI.Page, IExport
{
protected void Page_Load(object sender, EventArgs e)
{
UC11.MyExport = this;
//UC11 will be whatever name of your usercontrol
}
public void Export()
{
//your export code
}
}
そしてあなたのユーザーコントロール
public partial class UC1 : System.Web.UI.UserControl
{
public IExport MyExport { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
MyExport.Export();
}
}
お役に立てれば
aspxページにマスターページを使用する場合、この方法でユーザーコントロールのページGridViewにアクセスできます
Page mypage= this.Page;
GridView mypageGridview = (GridView)mypage.Master.FindControl("ContentPlaceHolder1").FindControl("YourGridView");
マスターページがない場合
Page mypage= this.Page;
GridView mypageGridview = (GridView)mypage.FindControl("YourGridView");