0

コントロールをマスター ページと簡単に共有できることはわかっています。しかし、自分のコントロールを別のマスターまたは別のプロジェクトのページと共有する必要がある場合はどうすればよいでしょうか? 具体的には、私が持っている各 masterPage のソリューション全体で複製する必要がないことを望んでいる SQLDataSource があります。

これを実現するには、入れ子になったマスター ページが必要ですか?

考えられる解決策は、SQL DataSource コントロールを別のページに配置することです。また、異なるマスター ページごとに、常にそのページを ContentPlaceHolder に読み込むようにします。これは可能ですか?

4

3 に答える 3

0

最後に、ネストされたマスターを作成し、SQLデータソースを最上位に配置して、各サブマスターがアクセスできるようにしました。

于 2012-06-14T15:52:17.127 に答える
0

を作成する必要がありますData Access Layer (DAL)。したがって、柔軟性のないコントロールを使用する代わりに、すべてのページでデータ呼び出しを共有できますSqlDataSource

次の例は非常に基本的なものです。を使用しEntity Frameworkてデータベースにアクセスし、Web Forms.

public class DataAccess
{

   public List<Record> GetAllRecordsByUserName(string credentials)
   {
      List<Record> recordList;
      using (CustomEntities context = new CustomEntities())
      {

        IQueryable<Section> recordQuery = from records in context.Records
                                              where records.UserName == credentials
                                              select records; 
        recordList = recordQuery.ToList<Record>();
      }
      return recordList;
   }

}

コードビハインドで

DataAccess access = new DataAccess();
List<Record> records = access.GetAllRecordsByUserName("user.name");
DropDownList1.DataSource = records;
DropDownList1.DataBind();

チュートリアル

asp.netの作成に関する優れたチュートリアルがありDALます。ぜひ行ってみることを強くお勧めします。これは、私の小さなコード スニペットよりもはるかに優れており、教育的です。

http://www.asp.net/web-forms/tutorials/data-access/introduction/creating-a-data-access-layer-cs

于 2012-06-14T15:00:31.207 に答える
0

戻り値の型IEnumerable<TEntity>の代わりに使用する方がより柔軟です。List<TEntity>

于 2012-06-14T15:22:11.117 に答える