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 "Invoice" model oluşturulur.

...

2. Faturaların listeleneceği liste ekranı oluşturulur. Grid oluşturma ile ilgili detaya  4 - Veri kaynağına bağlı tablo kullanımı (GridDataGrid) linkinden erişilebilir.

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

...

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", "#2f54eb"); //buton stil özellikleri eklenebilir.   
    createdButton.Style.Add("color", "white");       

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

4. Sayfa çalıştırıldığında aşağıdaki şekilde bir görünüm elde edilir.

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

...

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

...

Code Block
languagec#
titleInvoiceList -> CellButtonClicked
linenumberstrue
private void LDPGrid1_CellButtonClicked(LDP.Controls.Misc.LDPGrid sender, LDP.Controls.Misc.LDPGridColumn column)
{
    Response.Redirect("InvoiceDetail?invoiceId=" + 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