Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Tip

Aşağıda adımları gösterilen örnek projeyi RelationalModel_Release112023.rar linkinden indirebilirsiniz. (InvoiceList.ldpf ve InvoiceDetail.ldpf sayfaları)

1.ModelSchema.msdx dosyasında "StudentInvoice" model oluşturulur.

Image Added

2. Öğrencilerin Faturaların listeleneceği liste ekranı oluşturulur. Grid oluşturma ile ilgili detaya  Veri kaynağına bağlı tablo kullanımı (DataGrid) linkinden erişilebilir.
Image Added

Ek olarak detay sayfasına yönlendirme yapmak için ButtonColumn tipli kolon eklenir.

Image Added

3. ButtonColumn görünümde düzenlemeler yapmak için aşağıdaki şekilde ButtonForCell olayı oluşturulur.
Image Added

Grid buton kolonunun görünümü aşağıdaki şekilde düzenlenebilir.

Code Block
languagec#
linenumberstrue
        private void LDPGrid1_ButtonForCell(LDP.Controls.HTML.Button createdButton, LDP.Controls.Misc.LDPGridEventsCellHandlerArgs args)
        {   
			createdButton.Text = "Detaya Git"; //butonun metni
            createdButton.Style.Add("background-color", "lightblue#2f54eb"); //buton stil özellikleri eklenebilir.   
    createdButton.Style.Add("color", "white");       

	// createdButton.IconClass = ("fa fa-edit"); 
  }

64. Sayfa çalıştırıldığında aşağıdaki şekilde bir görünüm elde ediliyoredilir.Image Added

75. "Detaya Git"  butonuna tıklandığında yönlendirme yapılacak sayfa hazırlanır. 
8.StudentDetail sayfasında StudentList (InvoiceDetail)
İlişkisel modele uygun sayfa tasarımı örneğindeki Invoice - Detail örneği kullanılabilir.

6.InvoiceDetail sayfasında InvoiceList sayfasından gelecek değere göre kaydı göstermek için öncelikle parametre eklenmelidir.
StudentDetail InvoiceDetail sayfasının özelliklerinden Parameters üzerinden özelliğinden parametre eklenir.
9Image Added
7. Eklenen parametre değeri ile kriter oluşturulur.
10. Sayfa  Sayfa ilk yüklendiğinde kriterin uygulanmasını sağlamak için StudentDetailInvoiceDetail.ldpf.cs sayfasında oluşturulan kriter bindpanele bağlanır.

Code Block
languagec#
titleInvoiceDetail -> OnReady
linenumberstrue
protected override void OnReady()
{
    if (!this.XhrObject.IsNotXHRPostIsXHRPost()) //sadece sayfa ilk yüklenirken buaşağıdaki kodkodun çalışırçalışmasını sağlar.
    {
        if (PageControl.IsInputParamAssigned("invoiceId")) //parametre karşılığı varsa
        {
            Guid id = this.PageControl.ReadInputParam<Guid>("invoiceId");
            LDPBindPanel1.Criteria = LDPCriteria1.Criteria;
   NCriteriaBuilder<Invoice>.Where(s => (s.Id == id)).ToNCriteria(); //kriter olarak değer geçirilir.
            LDPBindPanel1.Bind();
         }
         else
            LDPBindPanel1.DataNew = true;
     }     
}
Tip

Bindpanel bileşeni için AutoNew özelliği true seçilirse; kriter uygulanıp veri bind edildiğinde eğer herhangi bir veri gelmezse Bindpnanel otomatik olarak New moduna alınacaktır. 

118. Son durumda StudentList InvoiceList sayfasına geçilir ve StudentDetail InvoiceDetail sayfası çağrılır. 
Butonun Grid butonu için click olayı oluşturulur.

Code Block
languagec#
titleInvoiceList -> CellButtonClicked
linenumberstrue
private void LDPGrid1_CellButtonClicked(LDP.Controls.Misc.LDPGrid sender, LDP.Controls.Misc.LDPGridColumn column)
{
    Response.Redirect("StudentDetailInvoiceDetail?studentIdinvoiceId=" + senderLDPGrid.DataAccess.ActiveRow["Id"]);
}

9. Proje çalıştırıldığında aşağıdaki şekilde listede bir butona tıklayarak detay bilgileri görüntülenebilir.

Image Added