Конечно.Если вы действительно имеете в виду общий доступ, так как на всех страницах используется один и тот же SqlDataSource, создайте мастер-страницу и поместите источник данных в мастер.В коде, представьте его как свойство мастера.Оттуда вы можете ссылаться на него с любой страницы, которая использует мастер.
Второй вариант - создать базовый класс страницы:
public class MyPage : Page
{
private SqlDataSource mDataSource;
public override void OnLoad(EventArgs e)
{
base.OnLoad(e);
// some code to init your data source - depending on your
// implementation, this may need to be in OnInit instead
}
public SqlDataSource DataSource
{
get { return mDataSource; }
}
}
В этом случае, в любое время, когда вы создаете новую страницуперейдите к коду и измените объявление с реализации Page на MyPage.Все страницы, которые реализуют MyPage, будут иметь член SqlDataSource, хотя каждая из них будет иметь свой собственный экземпляр, так что на самом деле это не «общий доступ» к одному и тому же SqlDataSource.
Любой из вариантов, я думаю, приведет вас туда, куда вы хотите пойти.
ОБНОВЛЕНИЕ: Плакат запросил пример экспонирования в качестве свойства мастера:
Для мастер-страницы со следующим:
<asp:SqlDataSource runat="server" ID="mDataSource" ... the rest of your properties .... />
<asp:ContentPlaceHolder runat="server" ID="MainContent"/>
В коде дляmaster, определите свойство:
public class SiteMaster : System.Web.UI.MasterPage
{
public SqlDataSource MasterDataSource
{
get { return mDataSource; }
}
// the rest of your master page's codebehind
}
На страницах, которые вы определяете для использования своей главной страницы, добавьте следующее ниже объявления @Page:
<%@ MasterPage VirtualPath="~/site.master"%>
Теперь в коде дляна эту страницу вы можете ссылаться:
protected void Page_Load(object sender, EventArgs e)
{
SqlDataSource ds = this.Master.MasterDataSource;
}
Пока у вас есть <% @ MasterType VirtualPath = "~ / PATH TO YOUR MASTER"%> на странице aspx, вы можетессылаться на любые свойства, которые вы выставляете в мастере.
Счастливое кодирование.
B