2008-09-05 12 views
2

Sayfanın bir DataTable sayfasından bilgi sunarım ve düz ileriye doğru bir sıralamanın ötesine geçen bazı sıralama işlevleri eklemek istiyorum. Bu yüzden, LinkButtons'u, GridView'umun HeaderItems'ine yerleştirmeye çalışıyorum. Bu, sayfayı yeniden yüklemeden önce oturum bilgilerini değiştiren işlevlere geri dönüyor.DataView içinden geri bildirim olayları

sonrası geri neden EDER benim bağlantıları tıklandığında ama benim OnClick fonksiyonları yürütülen alamadım olarak herhangi OnClick etkinliklerini oluşturmak üzere görünmüyor. AutoEventWireup true değerine ayarlıyım ve bağlantıları GridView'ten çıkarırsam iyi çalışıyorlar.

Onların href'lerde sorguları ekleme ve sayfa yük onlar için kontrol ama C# homurtu işi yapıyor olması tercih ediyorum, düzenli çapa oluşturarak sorunu var. Herhangi bir fikir?

Güncelleme: kontrollerin kimlikleri onların OnClick işlev adlarını maç netleştirmek için. ASP.Net içinde dinamik olarak oluşturulmuş denetimlere olayları kullanırken akılda tutulması gereken

cevap

0

İki şey:

  • Öncelikle, kontroller ideal Page.Init olay işleyicisi oluşturulmalıdır. Bu, olayların işlem kodunun çalıştırılmasından önce oluşturulmasını sağlamaktır.
  • İkincisi, aynı değeri kontroller ID özelliğine atamanız gerekir, böylece olay işleyici kodu bunun olayın üstesinden gelmesi gereken kontrol olduğunu bilir.
2

Doğru yoldasınız, ancak LinkButton'ın Komut Adı/Argümanı ile çalışmayı deneyin. Böyle bir şey deneyin:,

TemplateField ait HeaderTemplate bir LinkButton ekleyip CommandName ve CommandArgument

<HeaderTemplate> 
    <asp:LinkButton ID="LinkButton1" runat="server" CommandName="sort" CommandArgument="Products" Text="<%# Bind('ProductName")' /> 
</HeaderTemplate> 

Sonraki set GridView

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName == "sort") 
    { 
     //Now sort by e.CommandArgument 

    } 
} 

Bu, rowcommand olay ayarlamak Bu şekilde, LinkButtons'unuzun kontrolünü çok fazla yapmış olursunuz ve bunları takip etmek için fazla çalışma yapmanız gerekmez.

0

Bağlantı tıklandığında arayacağınız yöntemi belirtebilirsiniz.

<HeaderTemplate> 
    <asp:LinkButton 
     ID="lnkHdr1" 
     Text="Hdr1" 
     OnCommand="lnkHdr1_OnCommand" 
     CommandArgument="Hdr1" 
     runat="server"></asp:LinkButton> 
</HeaderTemplate> 
kod arkasında

:

protected void lnkHdr1_OnCommand(object sender, CommandEventArgs e) 
{ 
    // e.CommandArgument 
} 
İlgili konular