Reputation: 10174
I have a GridView and one column of the gridview is a template and I add a calendar control.
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
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