タイトルとしては、SqlDataSourceは、別のaspxページで共有することができますか? 私は複数のaspxページでまったく同じsqldatasourceを持っています。これを作成してすべてのページで共有することは可能ですか?SqlDataSourceは異なるaspxページで共有できますか?
ありがとう
タイトルとしては、SqlDataSourceは、別のaspxページで共有することができますか? 私は複数のaspxページでまったく同じsqldatasourceを持っています。これを作成してすべてのページで共有することは可能ですか?SqlDataSourceは異なるaspxページで共有できますか?
ありがとう
すべてのページで同じSqlDataSourceを使用するなど、実際に共有を意味する場合は、マスタページを作成し、データソースをマスタに配置します。コードビハインドで、マスターのプロパティとして公開します。そこから、マスターを使用する任意のページから参照できます。
番目のオプション - 基本Pageクラスを作成します。
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; }
}
}
この場合、あなたは、新しいページを作成するの背後にあるコードにアクセスし、マイページにページを実装から宣言を変更するたびに。 MyPageを実装するすべてのページにはSqlDataSourceメンバがありますが、それぞれが独自のインスタンスを持つため、実際には同じSqlDataSourceを共有しているわけではありません。
どちらのオプションでも、どこに行きたいかが分かります。
UPDATE:以下とマスターページを考える
:
<asp:SqlDataSource runat="server" ID="mDataSource" ... the rest of your properties .... />
<asp:ContentPlaceHolder runat="server" ID="MainContent"/>
マスタのコードビハインドでは、定義のポスターは、マスターのプロパティとして露光の一例を要請しましたプロパティ:あなたのマスターページを使用するための定義ページで
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;
}
を限り、あなたは限り、あなたはあなたのMASTER TO MasterType VirtualPath = "〜/ PATH @ <%を持っているように持っているように"%>あなたのaspxページでは、マスターで公開するすべてのプロパティを参照できます。
ハッピーコーディング。
b
コントロールはページに固有です。ページ間で共有するには、UserControlに配置し、UserControlのpublicプロパティを介して公開します。
接続文字列を意味する場合、答えはyesです。パブリック共有クラスに入れることができます。
接続が複数のページで開いている場合は、いいえ
メモリリークを防ぐには、常に接続をすぐに閉じてください。
答えていただきありがとうございます。あなたの最初のオプションのために、私はmasterpageでsqldatasourceを作成しましたが、マスターのプロパティとしてどのように公開しますか? – sktech
私はそれを得たことはありません。私はいつもsqldatasourceをマークアップページに追加しています。したがって、コードの背後に作成されたことを考えずに共有しました。あなたの大きな助けてくれてありがとう – sktech
@sketch - ありがとう - あなた自身でそれを理解してうれしく思いました - あなたにしっかりとした例を与えてくれるのでしたので、他の人たちのために仕上げると思っていました...あなたのプロジェクトの残りの部分。 – Brian