Omer
Omer

Reputation: 10174

Reach asp.net control that located inside gridview control

I have a GridView and one column of the gridview is a template and I add a calendar control.

enter image description here

I want to reach this control from codebehind and edit it, but I do not know how to achieve this. I can reach above calender just writing calender1 because it is on the page. How can I reach calender inside gridview.

<asp:Calendar ID="Calendar2" runat="server" SelectedDate="2014-07-08"></asp:Calendar>
<br />
<br />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="IsIlanId" DataSourceID="SqlDataSource1" OnRowCommand="GridView1_RowCommand" OnRowDataBound="GridView1_RowDataBound">
    <Columns>
        <asp:BoundField DataField="IsIlanId" HeaderText="IsIlanId" InsertVisible="False" ReadOnly="True" SortExpression="IsIlanId" />
        <asp:BoundField DataField="Baslık" HeaderText="Baslık" SortExpression="Baslık" />
        <asp:BoundField DataField="Icerik" HeaderText="Icerik" SortExpression="Icerik" />
        <asp:BoundField DataField="YayinlanmaTarihi" HeaderText="YayinlanmaTarihi" SortExpression="YayinlanmaTarihi" />
        <asp:BoundField DataField="BitisTarihi" HeaderText="BitisTarihi" SortExpression="BitisTarihi" />
        <asp:CheckBoxField DataField="YayindaMi" HeaderText="YayindaMi" SortExpression="YayindaMi" />
        <asp:BoundField DataField="FirmaResim" HeaderText="FirmaResim" SortExpression="FirmaResim" />
        <asp:BoundField DataField="FirmaAdi" HeaderText="FirmaAdi" SortExpression="FirmaAdi" />
        <asp:HyperLinkField DataNavigateUrlFields="IsIlanId" DataNavigateUrlFormatString="Ilan.aspx?id={0}" DataTextField="Baslık" />
        <asp:ImageField DataImageUrlField="FirmaResim">
        </asp:ImageField>
        <asp:ButtonField ButtonType="Button" CommandName="cmSec" Text="Button" />
        <asp:TemplateField HeaderText="Yayınlanma Tarihi">
            <ItemTemplate>
                <asp:Calendar VisibleDate='<%# Bind("YayinlanmaTarihi") %>' ID="Calendar1" runat="server" SelectedDate='<%# Bind("YayinlanmaTarihi") %>' ></asp:Calendar>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

Upvotes: 3

Views: 431

Answers (1)

mybirthname
mybirthname

Reputation: 18127

In the event of the Grid OnRowDataBound="Grid_RowDataBound" - add this in GridView1 in aspx file.

protected void Grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.DataItem == null)
        return;

    Calendar control= e.Row.FindControl("Calendar1") as Calendar;
    control.Visible = false;
}

In your case Control should be Calendar. If you want to reach button it bill be Button, for Label Label Control and so on.

Upvotes: 2

Related Questions