none
GridView a ASP:Component ID

    Dotaz

  • Dobrý večer.

    Chtěl bych se zeptat, jak deklarovat ID oběktu v GridView, aby bylo "Vyditelné" jako ID oběktu které je mimo GridView. Aby se dalo použít jak C# Script tak JScript.

     

    ASP.NE Příklad:

            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" >
            <Columns>
               <asp:TemplateField>
                    <ItemTemplate>
                            <asp:Button ID="tlacitko" runat="server" Text="Tlacitko" OnClick="tlacitko_Click" />
                            <asp:Label ID="labelKlik" Text="" Runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            </asp:GridView>

     

    C# Příklad: (Label)GridView1.FindControl("labelKlik"), to je jedine voditko ktere sem zjistil, a ani nevím jak to použít.

    středa 29. října 2008 22:04

Odpovědi

  • Dobrý den,

    správně směřujete k metodě FindControl(), musíte ji však volat v rámci řádky (nejbližšího kontextu NamingContaineru), nikoliv na gridu celém (v gridu je totiž ten labelKlik na každém řádku a nebylo by jasné, který chcete).

     

    Na řádek se dostanete mnoha způsoby, např. GridView.Rows[index], nebo v obsluze události RowCreated, RowDataBound, atp. Pak Vám bude fungovat

    Code Snippet

    Label labelKlik = (Label)myGridViewRow.FindControl("labelKlik");

     

     

     

    Na straně klienta má prvek přiděleno ID dle svého naming-contextu a získáte ho přes

    Code Snippet

    string clientID = labelKlik.ClientID;

     

     

    tento string s klientským ID pak můžete zakomponovat do svého JScriptu.

     

    čtvrtek 30. října 2008 7:24
    Moderátor