2013-10-23 64 views
2

我可以訪問Gridview頁腳模板內的日曆控件。 但是在EditItem模板中做同樣的事情並不那麼容易gridview edititem模板內的日曆控件

任何人都可以建議如何做到這一點?

我使用的EditItem模板3個控制:CalendarImageButtonTextBox 以及頁腳模板。

可以使用FindControl方法的GridView的FooterRow使日曆中顯示真/假

protected void MyDateInsButton_Click(object sender, EventArgs e) 
{ 
    if (GridView1.FooterRow.FindControl("MyDateInsCalendar").Visible == false) 
    { 
     GridView1.FooterRow.FindControl("MyDateInsCalendar").Visible = true; 
    } 
    else 
    { 
     GridView1.FooterRow.FindControl("MyDateInsCalendar").Visible = false; 
    } 
} 

,並獲得選擇的日期頁腳TextBox

protected void MyDateInsCalendar_SelectionChanged(object sender, EventArgs e) 
{   
    Calendar MyCal = (Calendar)sender; 

    ((TextBox)GridView1.FooterRow.FindControl("txtinsMyDate")).Text = MyCal.SelectedDate.ToString("d"); 
    GridView1.FooterRow.FindControl("MyDateInsCalendar").Visible = false;  
} 

裏面你如何訪問EditItem模板中的日曆控件使其可見True和False?

protected void MyUpdButton_Click(object sender, EventArgs e) 
{ 

} 

GridView1_RowUpdating方法將用於獲取從日曆控件插入文本框控件中選定日期的工作,但我還是想使日曆顯示,當用戶按下圖像按鈕消失。

任何幫助表示讚賞。 謝謝。

回答

2

你快到了。這樣做:

protected void MyUpdButton_Click(object sender, EventArgs e) 
{ 
    var MyDateInsCalendar = GridView1.Rows[GridView1.EditIndex].FindControl("MyDateInsCalendar") as Calendar; 
    MyDateInsCalendar.Visible = false; 
} 

而且在GridView1_RowEditing,設置EditIndex,重新綁定數據:

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
     GridView1.EditIndex = e.NewEditIndex; 
     GridView1.DataSource = MyDataSource; //Set it to your datasource 
     GridView1.DataBind();  
} 

希望它能幫助!

+0

它工作。謝謝。 – user2912964

+0

我有一個關注問題。你如何讓VisibleDate屬性起作用? – user2912964

+0

下面是MSDN [Calendar.VisibleDate屬性](http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.calendar.visibledate.aspx)中的一個很好的示例。 – afzalulh